Linux缓存内存:超过85%的缓存内存并使用交换

我在linuxatemyram读到了关于Linux和cachd内存但有一些对我来说没有意义,如果服务器甚至有一个低负载,而不是释放一些缓存的内存,它开始使用swap,这使服务器变慢..

即使是现在,当服务器负载是负载平均值时:0.00,0.00,0.00交换一些内存,而超过85%的内存用于交换.

我读过类似的问题,比如thisthis,但是提到交换不应该发生.同样,直到3周前,缓存占用了更小的内存部分,并且我们没有更改任何可能影响缓存内存的内容.

你能否告诉我这些价值是否还可以,或者我是否有问题?

谢谢!

[root@web01 ~]# cat  /proc/meminfo
MemTotal:      5183448 kB
MemFree:        249260 kB
Buffers:        330848 kB
Cached:        4317828 kB
SwapCached:         92 kB
Active:        2883596 kB
Inactive:      1882468 kB
HighTotal:     4315324 kB
HighFree:        63516 kB
LowTotal:       868124 kB
LowFree:        185744 kB
SwapTotal:     5799928 kB
SwapFree:      5799796 kB
Dirty:             368 kB
Writeback:           0 kB
AnonPages:      117356 kB
Mapped:          21076 kB
Slab:           152668 kB
PageTables:       4184 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   8391652 kB
Committed_AS:   268708 kB
VmallocTotal:   116728 kB
VmallocUsed:      5404 kB
VmallocChunk:   110964 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB
[root@web01 ~]# free
             total       used       free     shared    buffers     cached
Mem:       5183448    4932936     250512          0     330840    4317340
-/+ buffers/cache:     284756    4898692
Swap:      5799928        132    5799796
[root@web01 ~]# uname -a
Linux web01 2.6.18-164.15.1.el5PAE #1 SMP Wed Mar 17 12:14:29 EDT 2010 i686 i686 i386 GNU/Linux
最佳答案
没有!在您的示例帖子中,实际上没有任何东西用于交换.您使用92k(或第二个屏幕截图中的132k)交换,这是偶然和微不足道的.

缓存内存是空闲内存,已填充磁盘上的块内容.只要空间被其他任何东西需要,它就会腾空.这是一个提高性能的好事.

将您的问题与Server refuses to use swap partition进行比较.

至于为什么服务器可能交换数据而不是释放缓存,可能是您的缓存数据被读取的内容远远超过存储在内存中的数据.程序有时会有很少(如果有的话)访问的页面.缓存可以更好地利用这个空间.

vm.swappiness设置(也可修改直播/ proc …)会影响到这一点,但是在调整之前花一些时间仔细查看正在发生的事情,特别是使用你的交换输入/输出计数器. sar和atop是有用的工具.

转载注明原文:Linux缓存内存:超过85%的缓存内存并使用交换 - 代码日志