当前位置: 首页 > news >正文

为什么麒麟信创系统需要开启overcommit_memory才能安装postgresql成功

sudo sysctl -w vm.overcommit_memory=1
sudo sysctl -w vm.max_map_count=262144

参数详解

1. vm.overcommit_memory=1

含义:
控制 Linux 内核如何处理内存分配请求。

三个可选值:

  • 0(默认):启发式overcommit,内核会评估是否有足够内存,可能拒绝明显过大的请求
  • 1总是允许 overcommit,永远不拒绝内存分配请求
  • 2:严格控制,不允许 overcommit,只能分配物理内存+swap的总量

为什么能解决你的问题:

  • PostgreSQL 的 initdb 在初始化时需要 fork 子进程
  • 当设置为 0 时,内核可能认为系统"可能"没有足够内存,拒绝了 fork 操作
  • 设置为 1 后,内核总是允许内存分配,fork 操作成功
  • 你的系统虽然有 6GB+ 可用内存,但内核的启发式算法误判

2. vm.max_map_count=262144

含义:
限制一个进程可以拥有的内存映射区域(memory map areas)的最大数量。

默认值: 通常是 65530

为什么需要调整:

  • PostgreSQL、Elasticsearch 等数据库需要大量的内存映射
  • 默认值 65530 可能不够用
  • 调整到 262144 是常见的推荐值

如何永久保存这些设置

临时设置重启后会失效,需要永久保存:

# 编辑 sysctl 配置文件
cat >> /etc/sysctl.conf << EOF# PostgreSQL 优化参数
vm.overcommit_memory=1
vm.max_map_count=262144
EOF# 使配置生效
sysctl -p# 验证设置
sysctl vm.overcommit_memory
sysctl vm.max_map_count

为什么你的系统会遇到这个问题?

根本原因:

  1. 麒麟信创 的内核配置比较保守overcommit_memory 默认是 0
  2. PostgreSQL 初始化时需要 fork 进程,内核错误地认为内存不足而拒绝

这些设置的影响

优点:

✅ 允许应用程序正常分配内存
✅ 适合内存充足的系统
✅ 提高数据库性能

推荐的完整优化配置

# 添加到 /etc/sysctl.conf
cat >> /etc/sysctl.conf << EOF# ===== PostgreSQL 性能优化 =====
# 内存 overcommit 设置
vm.overcommit_memory=1
vm.overcommit_ratio=50# 内存映射区域数量
vm.max_map_count=262144# 共享内存设置(根据你的 6GB 内存)
kernel.shmmax=2147483648
kernel.shmall=524288# 减少 swap 使用
vm.swappiness=10
EOF# 应用配置
sysctl -p
http://www.dtcms.com/a/520287.html

相关文章:

  • PostGresql All语法
  • [java] 图文示八股
  • 【图像处理】图像形态学操作
  • 网站上传 空间 数据库开发一个电商平台app要多少钱
  • 如何制作网站链接数字镭网站开发
  • 使用python的matplotlib进行绘图
  • Nginx使用auth_request模块做外部认证集成Kibana
  • 【题解】洛谷 P2218 [HAOI2007] 覆盖问题 [二分 + 思维]
  • xss-labs pass-12
  • 企业网站建设服务电话做网站什么主题好做
  • 注册电气工程师(供配电)执业资格考试专业考试规范及设计手册(2025版)
  • 关于zwg技术的深度解析与应用前景
  • linux 什么做网站好网站优化课程培训
  • 键盘PCB为何对板厂要求更高?差异、难点及猎板解决方案解析
  • OMSDK WebView Display 接入步骤
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十S四)储存服务-NFS文件储存
  • tidex-数字货币交易所
  • C#使用OpenVinoSharp+魔塔社区的读光中英文OCR ONNX模型进行文字检测(仅检测不做识别)
  • 积分商城小程序深圳seo网络优化公司
  • [Linux文件系统——Lesson17.软硬链接]
  • apr库在x86架构下交叉编译成arm64架构
  • 软件设计师-结构化分析方法-耦合
  • 响应式企业网站 下载网站制作是不是要先用ps做
  • 购买网站建设需要注意app软件开发制作公司电话
  • 【AI Agent】入门、学习、求职
  • C++中const与引用深度解析:从使用到底层原理
  • Product Hunt 每日热榜 | 2025-10-23
  • 【大话码游之 Observation 传说】上集:月光宝盒里的计数玄机
  • raid恢复之后数据库故障处理(ora-01200,ORA-26101,ORA-600)---惜分飞
  • 2025年中专机电一体化专业做什么工作?