交换 95%+ ,但有很多空闲的 ram 内存

Pao*_*_FR 4 memory centos

我正在使用 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 内存而不是交换。或者我应该增加交换(我该怎么做?)。

谢谢

wom*_*ble 6

这很奇怪……虽然内核会积极地换出不使用的页面以允许更多的磁盘缓存,但它通常不会这样做,直到大部分内存实际用于缓存。

我可以在这里想到两种可能性:

  1. top您提供的输出是在大型内存使用进程刚刚终止时获取的,留下了大量未使用的 RAM。长时间的体面 sar 输出(内存和交换使用)将证实或反驳这一点。
  2. 你已经把swappiness旋钮调得太高了,所以内核很高兴地按照你的指示,把所有的东西都换掉,它可以得到它的手。仔细检查/proc/sys/vm/swappiness(默认值为 60),如果它高于这个值,则将其卷回(如果你真的想要,你也可以将它设置得更低,但如果你的机器最终表现得像球一样,不要怪我,因为它没有有任何磁盘缓存)。

另外,我不担心机器有很多页面被换出——只要给机器更多的交换,让它做它的事情。几乎可以保证内核内存管理器在优化内存使用方面比你更聪明。