Linux 关闭交换内存

第1种

1,查看swap分区是挂在哪里:

swapon -s

2.比如是挂到/dev/dm-1 ,停掉命令: swapoff   /dev/dm-1

第2种 

Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在
运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,
但可能会遇到问题, Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受
到影响:
通过 echo 0 > /proc/sys/vm/swappiness 即可解决。
 

 

 

关闭Linux的swap交换内存

操作:sysctl -w vm.swappiness=0

 

1. 设置swap:

linux系统会用内存做很 多的buffer和cache,所以经常会看到内存用完了,其实这里面可能只有很少的一部分是程序用到的。当内存不足的时候,系统有两种选择,一是减少缓 存的量,另一种是把部分程序使用的内存换到swap中。如果是mysql使用的内存被转移到swap中了会对性能有很大的影响,所以应该尽量保持 mysql使用的部分在内存中不被转移出去。可以使用memlock启动mysql是mysqld保持在内存中,不过使用这个选项需要以 root运行服务器。还可以使用关闭swap,可以使用swapoff或者umount分区,不过当内存不够大的时候(比如只有1G)系统不太稳定,可能 会导致mysql内存不足出错。也可以设置系统变量vm.swappiness,修改 /etc/sysctl.conf 添加 vm.swappiness = 0,并执行 sysctl -p 或 sysctl -w vm.swappiness=0。这个变量的范围是0至100,默认值60,当内存不足时,此变量的值小则系统偏向于减少缓存,反之则转移程序内存到 swap。但即使将它设为0了,系统仍然有可能使用swap。

 

2. 少用swap

swap的工作原理是:系统自动的把它认为不重要的页从内存置换到磁盘,以提供内存空间给其他人使用。虽然其设计者认为在linux下应该把swappiness设置为100%,但在很多情况下,swap都会导致严重问题。

swap会导致机器死机。某些情况下,当某个程序的swap占用过大时,如果这个时候程序要退出或者不需要那么多页,系统会尝试把swap的数据置换到内存,以便进行下一步操作,如果这个时候内存不足以存放这些数据,就会导致死机。注:swap导致死机的问题,不知道大家有没有更好的解释?

一般来说,数据库和能够自带缓存的程序,都不希望系统把内存页置换出去。最简单的“阻止”swap的策略是修改系统参数,参考:

sysctl -w vm.swappiness=0

echo 1>/proc/sys/vm/drop_caches

第一条语句是建议系统不要使用swap,

第二条语句是让系统清理cache,以便释放更多内存。但第一条并不能够绝对阻止swap(因为只是建议)。

mlockall是程序比较常用的锁定内存的函数。它能够防止内存页被置换到swap。

你可能感兴趣的:(Linux)