我在
linuxatemyram读到了关于Linux和cachd内存但有一些对我来说没有意义,如果服务器甚至有一个低负载,而不是释放一些缓存的内存,它开始使用swap,这使服务器变慢..
即使是现在,当服务器负载是负载平均值时:0.00,0.00,0.00交换一些内存,而超过85%的内存用于交换.
我读过类似的问题,比如this和this,但是提到交换不应该发生.同样,直到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是有用的工具.