我正在使用 cpanel 运行 centos 5.8。最近我收到报告说我的交换区已满,但有很多空闲内存可以使用。
top - 10:33:43 up 133 days, 17:00, 1 user, load average: 0.05, 0.03, 0.05
Tasks: 170 total, 1 running, 169 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.1%us, 0.5%sy, 0.0%ni, 97.2%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 24726100k total, 8255368k used, 16470732k free, 599560k buffers
Swap: 1046520k total, 984740k used, 61780k free, 3641828k cached
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
应使用未使用的 ram 内存而不是交换。或者我应该增加交换(我该怎么做?)。
谢谢
这很奇怪……虽然内核会积极地换出不使用的页面以允许更多的磁盘缓存,但它通常不会这样做,直到大部分内存实际用于缓存。
我可以在这里想到两种可能性:
top您提供的输出是在大型内存使用进程刚刚终止时获取的,留下了大量未使用的 RAM。长时间的体面 sar 输出(内存和交换使用)将证实或反驳这一点。swappiness旋钮调得太高了,所以内核很高兴地按照你的指示,把所有的东西都换掉,它可以得到它的手。仔细检查/proc/sys/vm/swappiness(默认值为 60),如果它高于这个值,则将其卷回(如果你真的想要,你也可以将它设置得更低,但如果你的机器最终表现得像球一样,不要怪我,因为它没有有任何磁盘缓存)。另外,我不担心机器有很多页面被换出——只要给机器更多的交换,让它做它的事情。几乎可以保证内核内存管理器在优化内存使用方面比你更聪明。