当前位置:Linux教程 - Linux - Linux Swap Memory分配小技巧

Linux Swap Memory分配小技巧



         我发现很多人对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的倍数的s wap, 您会发现浪费了一大块硬碟空间. 剩余记忆体应当通常都不多(因为Linux重重地快取所有档案系统,这是Linux之所以快速的原因之一), 但这不重要, Linux有一些机制, 在需要记忆体的时候, 会释放记忆体出来. 您只需要看swap的部份,就可以决定swap memory大约需要多少.例如如果您的swap经常在100MB左右, 那么给200MB大致是够的. 另外, 发现许多人把swap切在primary上面,这本身倒没什么错误. 不过切在extended上面可以多切几个小块出来,效能会比较好一点. Swap小一点会有比较好的效能, 也比较安全一点,毕竟memory block少有超过32MB的. 不过, 别太小就是了. (注: 这是我Hack Kernel的小心得, 不见得正确, 您可以看/usr/src/linux/mm的原始码来验证我是否正确).
    发布人:Crystal 来自:Linux之家