25.3. 虚拟内存参数


虚拟内存参数列在 /proc/sys/vm 目录中。以下是可用的虚拟内存参数:

vm.dirty_ratio
一个百分比值。修改系统内存占总内存的百分比时,系统开始向磁盘写入修改。默认值为 20 百分比。
vm.dirty_background_ratio
一个百分比值。修改系统内存占总内存的百分比时,系统会在后台开始向磁盘写入修改。默认值为 10%。
vm.overcommit_memory
定义决定接受或拒绝大型内存请求的条件。默认值为 0。默认情况下,内核会检查虚拟内存分配请求是否适合存在的内存量(总计 + swap),并只拒绝大型请求。否则,会授予虚拟内存分配,并允许内存过量使用。
设置 overcommit_memory 参数的值
  • 当此参数设置为 1 时,内核不会执行内存过量使用处理。这会增加内存过载的可能性,但提高了内存密集型任务的性能。
  • 当此参数设置为 2 时,内核拒绝对内存的请求等于或大于可用交换空间总量,以及 overcommit_ratio 中指定的物理 RAM 的百分比。此设置降低了过量使用内存的风险,只对 swap 分区大于其物理内存的系统使用。
vm.overcommit_ratio
overcommit_memory 设为 2 时,指定物理 RAM 的百分比。默认值为 50。
vm.max_map_count
定义进程可以使用的最大内存映射区域数。默认值为 65530。如果您的应用程序需要更多内存映射区域,则提高这个值。
vm.min_free_kbytes
设置保留可用页面池的大小。它还负责设置管理 Linux 内核中页面回收算法行为的 min_pagelow_pagehigh_page 阈值。它还指定在系统中保留最少的可用 KB 数。这会为每个低内存区计算一个特定值,每个值都会被分配一个保留的空闲页面的大小。
设置 vm.min_free_kbytes 参数的值
  • 增加参数值可有效减少应用程序工作集可用内存。因此,您只能将其用于内核驱动的工作负载,其中驱动程序缓冲区需要在原子上下文中分配。
  • 减少参数值可能会导致内核无法服务系统请求,如果内存在系统中发生大量处理。

    警告

    极端的值可能会降低系统性能。将 vm.min_free_kbytes 设置为非常低的值可防止系统有效地回收内存,这可能会导致系统崩溃并失败服务中断或其他内核服务。但是,设置 vm.min_free_kbytes 太大地增加系统回收活动,从而导致分配延迟因为假的直接重新声明状态而造成分配延迟。这可能导致系统立即进入内存不足状态。vm.min_free_kbytes 参数还设置页面重新声明水位线,称为 min_pages。在确定两个其他内存水位线、low_pageshigh_pages 时,这个水位线被用作一个因素,它管理页面重新声明算法。

  • /proc/PID/oom_adj 在事件中,当系统内存不足,并且 panic_on_oom 参数设置为 0 时,oom_killer 功能会终止进程,从具有最高 oom_score 的进程开始,直到系统恢复为止。oom_adj 参数决定了进程的 oom_score。这个参数会根据进程标识符设置。值 -17 可禁用该进程的 oom_killer。其他有效的值范围从 -1615

    注意

    由调整的进程创建的进程将继承该进程的 oom_score

vm.swappiness
swappiness 值范围从 0 到 200,控制系统从匿名内存池回收内存或页面缓存内存池的程度。
设置 swappiness 参数的值
  • 高的值首选文件映射驱动的工作负载,同时交换出较少访问的进程的 RAM 匿名映射内存。这对依赖于数据的文件或流应用(如存储中的文件)非常有用,以减少服务请求的 I/O 延迟。
  • 低值优先选择匿名映射驱动的工作负载,同时回收页面缓存(文件映射内存)。这个设置对于不依赖于文件系统信息的应用程序很有用,并且主要利用动态分配和私有内存,如数学和数字缩小应用程序,以及某些硬件虚拟化超级visors (如 QEMU)。vm.swappiness 参数的默认值为 60。

    警告

    vm.swappiness 设置为 0 主动避免将匿名内存交换到磁盘,这会增加 oom_killer 功能在内存或 I/O 密集型工作负载期间终止进程的可能性。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat