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

Linux虚拟内存参数配置详解

一、内存交换控制(Swap)

1. vm.swappiness(核心参数)

  • 作用:控制内存页交换到磁盘的倾向,取值范围 0-100,默认 60。
  • 配置逻辑:
    • 数据库 / 内存敏感型应用:设置为 10-20,减少交换对性能的影响。
    • 内存紧张的服务器:设置为 30-50,平衡内存使用与稳定性。
    • 极端场景:设置为 0(内核 3.5+)或 1(Red Hat 2.6.32+)完全禁用交换。
  • 调整方法:
    sysctl -w vm.swappiness=10  # 临时生效
    echo "vm.swappiness=10" >> /etc/sysctl.conf  # 永久生效

2. vm.min_free_kbytes

  • 作用:系统保留的最小空闲内存(KB),防止内存耗尽。
  • 配置逻辑:
    • 计算公式:min_free_kbytes = (总内存GB) * 1024 * 4(经验值)。
    • 示例:32GB 内存设置为131072
  • 风险:设置过小可能导致 OOM,过大则浪费内存。

二、内存分配策略

1. vm.overcommit_memory(核心参数)

  • 作用:控制内存超额分配策略,取值 0/1/2:
    • 0(启发式):默认模式,允许适度超额分配。
    • 1(总是允许):适用于科学计算等稀疏内存使用场景。
    • 2(严格限制):禁止超额分配,内存分配总量不超过物理内存 + swap * vm.overcommit_ratio
  • 数据库场景:建议设置为 2,避免 OOM。
  • 调整方法:
    sysctl -w vm.overcommit_memory=2
    echo "vm.overcommit_memory=2" >> /etc/sysctl.conf

2. vm.overcommit_ratio

  • 作用:当vm.overcommit_memory=2时,允许超额分配的物理内存百分比,默认 50%。
  • 调整示例:
    sysctl -w vm.overcommit_ratio=70
    
     

三、脏页管理(I/O 性能优化)

1. vm.dirty_ratio

  • 作用:内存中脏页占总内存的百分比阈值,达到时触发同步刷盘。
  • 配置逻辑:
    • 高并发写入场景:设置为 30-40,减少 I/O 延迟。
    • 普通场景:默认 20。
  • 风险:过高可能导致系统崩溃。

2. vm.dirty_background_ratio

  • 作用:脏页占总内存的百分比阈值,达到时触发后台异步刷盘。
  • 配置逻辑:
    • 建议值:为vm.dirty_ratio的 1/2,如 20/10。
  • 示例:
    sysctl -w vm.dirty_ratio=30 vm.dirty_background_ratio=15
    
     

四、内存映射与进程限制

1. vm.max_map_count(关键参数)

  • 作用:单个进程可创建的最大内存映射区域数,默认 65536。
  • 应用场景:
    • Elasticsearch:需设置为 262144。
    • 数据库:根据索引规模调整,建议 1048576。
  • 调整方法:
    sysctl -w vm.max_map_count=262144
    echo "vm.max_map_count=262144" >> /etc/sysctl.conf
    
     

2. vm.zone_reclaim_mode

  • 作用:控制 NUMA 架构下内存回收策略,取值 0-4:
    • 0:允许跨节点分配内存。
    • 1:优先本地节点回收。
  • 数据库场景:设置为 0,减少 swap。

五、内存缓存管理

1. vfs_cache_pressure

  • 作用:控制内核回收文件缓存的倾向,取值 0-1000,默认 100。
  • 配置逻辑:
    • 高缓存需求:设置为 50,减少缓存回收。
    • 内存紧张:设置为 200,加速缓存释放。

2. page-cluster

  • 作用:控制 swap 操作的页面簇大小(2^n 页),默认 3(8 页)。
  • 调整示例:
    sysctl -w vm.page-cluster=2  # 4页
    
     

六、监控与验证

1. 工具推荐

  • 内存使用:free -htophtop
  • swap 活动:vmstat 1(关注si/so列)。
  • 脏页状态:cat /proc/meminfo | grep Dirty
  • 参数验证:sysctl -a | grep vm

2. 验证案例

# 查看当前swappiness值
sysctl vm.swappiness# 监控swap使用
watch -n 1 'vmstat 1 | tail -n 1'

七、典型场景配置模板

1. 数据库服务器

vm.swappiness = 10
vm.overcommit_memory = 2
vm.overcommit_ratio = 70
vm.dirty_ratio = 30
vm.dirty_background_ratio = 15
vm.max_map_count = 262144
vm.zone_reclaim_mode = 0

2. Web 服务器

vm.swappiness = 30
vm.overcommit_memory = 0
vm.dirty_ratio = 20
vm.dirty_background_ratio = 10
vfs_cache_pressure = 200
http://www.jsqmd.com/news/423912/

相关文章:

  • Vitest快速深度解析
  • 北京丰宝斋|老家具回收老字号,高价诚信,上门无忧 - 品牌排行榜单
  • 探讨拉菲尔无人机培训机构在厦漳泉地区的排名,值得选购吗 - 工业品牌热点
  • Vitest ESM支持深度解析
  • Agent Infra 架构范式,最好的 Agent 框架,也许是“没有”框架
  • 携程任我行回收平台推荐,安全又靠谱! - 团团收购物卡回收
  • 学长亲荐!专科生必备降AI工具 —— 千笔·降AI率助手
  • 初学不慌,启蒙有方|武汉普拉提初学者,禧悦陪你轻松开启优雅之旅 - 冠顶工业设备
  • 亲测好用!千笔写作工具,遥遥领先的AI论文平台
  • 给你一张清单 9个降AIGC工具:本科生降AI率必备测评与推荐
  • 赶deadline必备 AI论文平台 千笔AI VS 灵感ai,自考写作更高效!
  • 北京会所/酒店老家具回收|丰宝斋批量上门,高价回收,高效快捷 - 品牌排行榜单
  • 基于MATLAB的视频插帧实现
  • 效率直接起飞 10个降AIGC软件测评:MBA高效降AI率必备工具推荐
  • C++的核心概念
  • 2026年2月国内制氮机热门生产厂家推荐来袭,制氧机/制氮机,制氮机批发厂家排行 - 品牌推荐师
  • 北京老家具回收全攻略|丰宝斋教你避坑,高价变现不踩雷 - 品牌排行榜单
  • 北京黄花梨家具上门回收|丰宝斋高价回收,懂行识货,不亏分毫 - 品牌排行榜单
  • 北京搬家清理老家具|丰宝斋上门回收,不用你动手,高价变现 - 品牌排行榜单
  • 省心高效|企业健身房一站式采购,上海皓衍全流程护航,告别多方对接烦恼 - 冠顶工业设备
  • 北京老家具回收哪家正规?丰宝斋上门回收,高价诚信,专业靠谱 - 品牌排行榜单
  • 毕业设计 深度学习yolo11森林火灾预警烟雾检测系统(源码+论文)
  • 2026年金相显微镜源头厂家哪家好?热门厂家大排行!摩擦磨损试验机/里式硬度计,金相显微镜源头厂家推荐排行榜 - 品牌推荐师
  • 学霸同款AI论文网站,千笔ai写作 VS 知文AI,MBA专属利器!
  • 2026年2月不锈钢沉头钻尾丝实力厂家,专业紧固件一站式供应 - 品牌鉴赏师
  • 从理解标准到实现突破,奋飞咨询助力企业稳步提升 Ecovadis 评级 - 奋飞咨询ecovadis
  • Dify搭建WorkFlow
  • ONVIF协议网络摄像机(IPC)客户端程序开发(C语言实现)
  • 建议收藏|9个AI论文写作软件深度测评!本科生毕业论文+开题报告必备工具推荐
  • 2026年不锈钢膨胀螺丝工厂推荐,抗震防脱与安全性能认证 - 品牌鉴赏师