配置Linux内存参数

几天前听运维的老兄抱怨某台Linux服务器怎么物理内存占用那么小,虚拟内存却占了一大半? LD自己当桌面的本本最近也遇到这种情况,而swap占用越大,GUI系统运行越慢。于是到网上找了些方法,目前本本的问题算是基本解决。

1.重启虚拟内存; — 首先说最简单直接的方法,直接执行下面命令:

sync
swapoff
swapon

我们先同步一下,让系统把内存中的东东写入磁盘,然后卸载swap,最后重启swap。在桌面系统中,该方法效果最明显,“现在啊,腰不酸了,腿也不疼了,整个的变利索了!” ——就是这种效果.

危险!!! 绝对不能对服务器这么干! 当年LD滴某老师滴同鞋把服务器的虚拟内存强制卸载后,导致一个月的数据丢失,运行于其他服务器中的同步备份和全备份因为光纤的断裂,数据也都只维持在一个月前(顺带BS一下party机关落后的管理机制)… 最后只能所有文员没日没夜滴按小票输入缺失的数据!

2.让系统自己清理内存;

sync
echo 3 > /proc/sys/vm/drop_caches

也就是说系统主动最大限度的释放内存,可对于虚拟内存实在效果不明显. 下面是关于drop caches的详细信息:

To free pagecache:
* echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:
* echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:
* echo 3 > /proc/sys/vm/drop_caches

3.设置使用swap的概率

echo 5 > /proc/sys/vm/swappiness

比之第二种方法,还是有些效果的,尤其是firefox没那么迟顿了。但遇到吃内存的程序一起使用时,GUI会假死(LD这里的情况: firefox+amarok+zend studio for eclipse).

swappiness这个参数值越大,系统使用swap的可能性越大。 网上有人设为0, 就是说系统会尽少的使用虚拟内存,而非不再写入swap, 如果你确定内存够大,直接关闭swap即可,无须理会这些罗嗦的参数。

4.我的最终桌面方案

# 在 /etc/sysctl.conf 文件中加入下面3行:
vm.swappiness = 5
vm.drop_caches = 3
vm.dirty_writeback_centisecs = 1500

# 参考: 与磁盘IO子系统有关的Linux内核参数

然后执行:
sysctl -p

算是2、3种方法的综合,可恨自己内存太小,不然直接关掉swap; LD现在的本本以工作、娱乐为目标,知足吧.

对于服务器,应该配合程序员、DBA的建议,综合考虑多种因素,合理设置linux内核参数,然后经历数次压力测试才行。切不可这么随意

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfygx.html