交换 95%+,但有大量可用内存

交换 95%+,但有大量可用内存

我正在运行带有 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  

我该如何解决这个问题?
应该使用未使用的 RAM 内存而不是交换空间。或者我应该增加交换空间(我该怎么做?)。

谢谢

答案1

这相当奇怪......虽然内核会积极地换出未使用的页面以允许更多的磁盘缓存,但它通常不会这样做,直到大多数内存实际被用作缓存。

我能想到两种可能性:

  1. 您提供的输出top是在大量使用内存的进程刚刚终止时获取的,留下了大量未使用的 RAM。长时间内不错的 sar 输出(内存和交换使用情况)可以证实或反驳这一点。
  2. 你已经转动了swappiness旋钮哇哇哇搞砸了,所以内核会愉快地按照你的指示交换它能接触到的所有内容。仔细检查/proc/sys/vm/swappiness(默认值为 60),如果高于该值,则将其调回(如果你真的想,也可以将其设置得更低,但如果你的机器最终因为没有任何磁盘缓存而表现得很糟糕,请不要怪我)。

另外,我不用担心机器会有大量页面被换出——只需给机器更多交换空间,让它自己做事即可。几乎可以肯定的是,内核内存管理器在优化内存使用方面比您更聪明。

答案2

您确定有问题需要解决吗?您是否遇到过性能低下的情况?例如,检查“优化内存使用”AThttps://help.ubuntu.com/community/SwapFaq#Why_do_I_need_swap.3F 大量使用的交换空间并不意味着确实存在问题。

答案3

我不确定您的高交换使用率是否表明存在问题。查看 dstat 或 vmstat 并观察交换区域是否有任何活动。我在我的一位客户的服务器上看到过类似的情况。交换几乎已满,但未以任何方式使用(未看到交换的 I/O)。就我而言,这根本不是问题!

swapoff

其次是

swapon

如果你有足够的可用 RAM,将会清空你的交换空间。

相关内容