Linux Swap Memory分配小技巧
发布时间:2007-09-21 16:19:30来源:红联作者:YpoClose
我发现很多人对Linux Swap Memory不太了解,经常见到有人把Linux Swap切成大于128MB的状况出现。
这里要稍加解释一下, Linux的一个Swap上限为128MB,可以有16个Swap, 也就是最大上限为2GB。Swap可以是2的倍数2MB,4MB,8MB,16MB,32MB,64MB,128MB。切成200MB的话,只能用到128MB, 切成48MB只能用到32MB。
所以您切割成大于128MB的Swap是没有用的。对于Swap的大小问题, 您要考虑您的使用状况,如果您有搞电脑绘图, 尤其是热幅射成像法时,有大矩阵的运算, 那么Swap当然要大一点。否则一般的状况是您记忆体的两倍到四倍。记忆体越小, 这个比例要相对的增大。如果是64MB, 那么大约128MB-256MB就很够。
例如我自己的机器,HTTP Server原本给了64MB,Swap给了512MB, 但后来发现给得太好了,就改回32MB, Swap 128MB, (有点奇怪的是,效能不降反升, 可能是需要处理的量降低所造成的。)
Desktop用的电脑,因为有电脑绘图的应用,因此有192MB RAM, 给了1GB Swap, 最坏的状况是Swap到达400MB。(跑SLAT这套我自己写的天体物理模拟软体时。)
在64MB的状况, 大部份时候比较常见到Swap到达150MB(Xwindow+GIMP+Blender+Netscape+...servers)
如果您只是File Server, 那么16MB RAM+64MB Swap可能就够了。如果还有Printer Server, 那么要看您的量来决定了,如果是一堆图档, 或者列印量很大, 那么RAM/SWAP比率要加大很多。64MB+512MB Swap并不会太夸张。
要决定您的swap memory的使用状况, 您可以经常去看/proc/meminfo 这个档案。 看过这个档案会验证您的swap是否有效,如果您切了一块不是2的倍数的swap, 您会发现浪费了一大块硬碟空间。
剩余记忆体应当通常都不多(因为Linux重重地快取所有档案系统,这是Linux之所以快速的原因之一), 但这不重要, Linux有一些机制, 在需要记忆体的时候, 会释放记忆体出来。 您只需要看swap的部份,就可以决定swap memory大约需要多少。例如如果您的swap经常在100MB左右, 那么给200MB大致是够的。
另外, 发现许多人把swap切在primary上面,这本身倒没什么错误。 不过切在extended上面可以多切几个小块出来,效能会比较好一点。 Swap小一点会有比较好的效能, 也比较安全一点,毕竟memory block少有超过32MB的。 不过, 别太小就是了。