设置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。

你可能感兴趣的:(linux,mysql,cache)