Linux 设定 vm.swappiness 调整 SWAP 使用时机

..

Linux SWAP 的设定建议值,在最早的书籍、文件教学都是建议设定为内存(RAM)的两倍~

不过随着内存越来越大,反而就建议 SWAP 的设定值就不要太大,毕竟吃到 SWAP 整台 机器的 IO 都会重不少~

原本想法应该是,内存使用满,系统才会去使用到 SWAP,不过,仔细看看常常都是内存还很多,却已经开始吃 SWAP,到底是怎么回事呢?

Linux 设定 vm.swappiness 调整 swap 使用时机

Linux 的 sysctl 有个系统参数可以设定,内存使用多少 % 后,就会先开始使用 Swap

  • vm.swappiness 默认值是:60
    • sudo sysctl vm.swappiness # or $ cat /proc/sys/vm/swappiness
      • vm.swappiness = 60
    • 这代表的意义是,RAM 使用到 40% (100 - 60 = 40)以上就会开始吃 Swap

想要尽量优先使用内存,用完才去吃到 Swap,可将这个值尽量设小,设定成 1 都可以~

  1. sudo vim /etc/sysctl.conf
    • 于档案最后加入此行 vm.swappiness = 10
  2. sudo sysctl -p # 即完成
  3. sudo sysctl vm.swappiness # 验证确认
    • vm.swappiness = 10

另外作法

  • 若只是想暂时生效:sysctl vm.swappiness=10
  • 注:另一招干脆 swapoff -a 把 swap 关了

相关网页

想在手机阅读更多Linux资讯?下载【香港硅谷】Android应用
分享到Facebook