Linux vm.min_free_kbytes内核参数使用及说明

 更新时间:2026年01月30日 09:06:37   作者:xbglinux  
vm.min_free_kbytes是Linux内核的一个可调参数,用于保留一定量的空闲内存,以确保系统稳定运行,通过调整该参数,可以观察到系统内存使用情况的变化

1 简介

vm.min_free_kbytes是用于 linux 内核的 vm.min_free_kbytes sysctl 可调参数。

2 vm.min_free_kbytes如何工作

  • 系统需要内存分配以确保系统本身的正常运行。
  • 如果内核允许分配所有内存,则在需要内存进行常规操作以保持操作系统平稳运行时,它可能会遇到困难。
  • 这就是内核提供可调vm.min_free_kbytes 的原因。
  • 该可调参数将强制内核的内存管理器保留至少 X 量的空闲内存。

这是来自linux内核文档的官方定义:

  • 这用于强制 Linux VM 保持最小数量的可用千字节。
  • VM 使用这个数字来计算系统中每个lowmem 区域的 watermark[WMARK_MIN] 值。
  • 每个 lowmem 区域都会根据其大小按比例获得一些保留的空闲页面。
  • 满足 PF_MEMALLOC 分配需要一些最小的内存量;如果您将其设置为低于1024KB,您的系统将被巧妙地破坏,并且在高负载下容易死锁。
  • 设置得太高会立即 OOM 你的机器。

3 vm.min_free_kbytes验证

创建了一台约分配7G-8G左右内存的虚拟机,系统版本使用统信操作系统V20 1020A。

  • 首先用free命令查看内存使用情况:

查看上面的附图可以得到总内存在约7.9G。使用了532MB,6.9G内存可用,491MB用于缓冲区高速缓存。并且有7.1G的内存可用。

  • 看一下vm.min_free_kbytes默认值:

  • 调整vm.min_free_kbytes值,看看对系统内存有什么影响:

  • 可以看到参数值修改成约1.5GB,已经生效,使用free命令查看一下:

参数值修改不会更改可用内存和缓冲区高速缓存,但是显示为可用内存量从7182MB减少到4985MB 。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux和windows文件互传的两种方案

    Linux和windows文件互传的两种方案

    有时linux主机中的一些文件可能会在windows环境下用到,例如在linux主机中抓了一些图片,想把它们传到windows主机上以作为 word文档的插图,在这些情况下,都需要一种方法来进行两者之间的互通,所以本文给大家介绍了Linux和windows文件互传的两种方案
    2024-05-05
  • Windows下安装Apache 2.2.21图文教程

    Windows下安装Apache 2.2.21图文教程

    这篇文章主要介绍了Windows下安装Apache 2.2.21图文教程,文中还列举了一些安装中可能遇到的常见问题,需要的朋友可以参考下
    2014-07-07
  • Linux切换root用户的几种实现方式

    Linux切换root用户的几种实现方式

    在Linux系统中,root用户为超级用户,拥有最高权限,切换到root用户的常用方法包括使用su、sudo、sudo-i和sudosu命令,每种方法适用于不同场景,需根据实际需求选择,使用root权限需谨慎,以免对系统造成损坏
    2024-11-11
  • Linux基于阻塞队列的生产消费者模型详解

    Linux基于阻塞队列的生产消费者模型详解

    这篇文章主要介绍了Linux基于阻塞队列的生产消费者模型,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Ubuntu开机出现黑屏的常见解决方法

    Ubuntu开机出现黑屏的常见解决方法

    这篇文章主要为大家详细介绍了Ubuntu开机出现黑屏的几个常见解决方法,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2025-05-05
  • Ubuntu系统中软件卸载与清理的终极指南

    Ubuntu系统中软件卸载与清理的终极指南

    这篇文章主要介绍了Ubuntu系统软件卸载指南涵盖APT、Snap、Flatpak等安装方式,提供卸载命令、清理依赖缓存及用户残留文件的方法,并强调验证卸载结果,确保彻底删除,需要的朋友可以参考下
    2025-05-05
  • 解决linux ping命令报错name or service not known问题

    解决linux ping命令报错name or service not known问题

    文章详细介绍了两种解决CentOS 7无法上网的问题的步骤:首先,通过VMware的NAT模式配置网络,并编辑网络配置文件以静态IP地址设置;其次,通过克隆CentOS 7并进行相应的IP、UUID和主机名修改,同时更新DNS和网络配置,最终实现联网
    2024-11-11
  • 解决atd服务报错Failed with result‘exit-code‘问题

    解决atd服务报错Failed with result‘exit-code‘问题

    在isoftserveros-v5.1-oe1-aarch64系统中,安装at软件包后,由于手动执行导致atd守护进程出错,通过查看后台Process行,手动kill原atd进程,使用systemctl重启atd服务后,问题得以解决,此经验可为类似情况提供参考
    2024-09-09
  • Git 详细介绍查看、删除、重命名远程分支和tag

    Git 详细介绍查看、删除、重命名远程分支和tag

    这篇文章主要介绍了Git 详细介绍查看、删除、重命名远程分支和tag的相关资料,需要的朋友可以参考下
    2017-01-01
  • Linux查看、设置与取消环境变量详解

    Linux查看、设置与取消环境变量详解

    Linux是一个多用户的操作系统,多用户意味着每个用户登录系统后,都有自己专用的运行环境,而这个环境是由一组变量所定义,这组变量被称为环境变量,本文给大家详细介绍了Linux查看、设置与取消环境变量操作指南,需要的朋友可以参考下
    2025-07-07

最新评论