IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

修改Linux交换空间的使用率

Java地带 2018-07-05 13:32:32 累计浏览 2,671 次
本机暂存

   简单地说这个参数定义了系统对swap的使用倾向,默认值为60,值越大表示越倾向于使用swap。
可以设为0,这样做并不会禁止对swap的使用,只是最大限度地降低了使用swap的可能性。

   通过sysctl -q vm.swappiness可以查看参数的当前设置。

   修改参数的方法是修改vi /etc/sysctl.conf文件,加入vm.swappiness=xxx,并重起系统。
这个操作相当于是修改虚拟系统中的/proc/sys/vm/swappiness文件,将值改为XXX数值。

   如果不想重起,可以通过sysctl -p动态加载/etc/sysctl.conf文件,但建议这样做之前先清空swap。

   建议设置:vm.swappiness = 10

   swap清理代码代码如下:
swapoff -a && swapon -a
注意:这样清理有个前提条件,空闲的内存必须比已经使用的swap空间大

   内存使用到多少开始使用swap?
vm.swappiness   这个内核参数控制

   /proc/sys/vm/swappiness
这个交换参数控制内核从物理内存移出进程,移到交换空间。该参数从0到100,当该参数=0,表示只要有可能就尽力避免交换进程移出物理内存;该参数=100,这告诉内核疯狂的将数据移出物理内存移到swap缓存中。

   PS:设置vm.swappiness=0 后并不代表禁用swap分区,只是告诉内核,能少用到swap分区就尽量少用到,设置vm.swappiness=100的话,则表示尽量使用swap分区,默认的值是60
调整内存参数,当内存使用率不足10%(开始是默认值60)时在使用swap,尽量避免使用swap,减少唤醒软中断进程,从而降低ksoftirqd进程对cpu的占用。

   关于linux内存分配机制
在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。

同分类推荐文章

  1. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)
  2. WARNING: detected duplicate paths to the same disk导致crs无法正常启动故障解决 (2026-05-24 22:24:49)
  3. Terraform 极简入门:从 AWS-CLI 到基础设施即代码(IaC) (2026-05-20 08:00:00)

查看更多 DevOps 文章 →

建议继续学习

  1. Linux如何统计进程的CPU利用率 (累计阅读 16,211)
  2. 我的 RHCA 之路 (累计阅读 13,930)
  3. Linux内存点滴 用户进程内存空间 (累计阅读 13,059)
  4. 给程序员新手的一些建议 (累计阅读 13,026)
  5. Linux 性能监控、测试、优化工具 (累计阅读 12,955)
  6. 关于linux内存free的一些事情 (累计阅读 12,756)
  7. ps - 按进程消耗内存多少排序 (累计阅读 12,610)
  8. Google怎么用linux (累计阅读 12,473)
  9. find命令的一点注意事项 (累计阅读 11,787)
  10. Linux Used内存到底哪里去了? (累计阅读 11,750)