Kuf*_*Kuf 4 linux memory cache swap
我在linuxatemyram 上阅读了有关 Linux 和缓存内存的信息,但有一些对我来说没有意义的东西,如果服务器的负载甚至很低,而不是释放一些缓存内存,它开始使用交换,这会使服务器变慢..
即使是现在,当服务器负载达到load average: 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
Run Code Online (Sandbox Code Playgroud)
[root@web01 ~]# free
total used free shared buffers cached
Mem: 5183448 4932936 250512 0 330840 4317340
-/+ buffers/cache: 284756 4898692
Swap: 5799928 132 5799796
Run Code Online (Sandbox Code Playgroud)
[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
Run Code Online (Sandbox Code Playgroud)
Jef*_*and 10
不!在您的示例帖子中,实际上没有任何内容用于交换。您正在使用 92k(或第二个屏幕截图中的 132k)的交换,这是偶然的和微不足道的。
缓存内存是已填充磁盘上块内容的空闲内存。一旦其他任何东西需要空间,它将被腾空。这是提高性能的好东西。
将您的问题与 Server 拒绝使用交换分区进行比较。
至于为什么服务器可能会交换数据而不是释放缓存,可能是因为您的缓存数据被读取的次数远多于存储在内存中的数据。程序有时会访问它们很少(如果有的话)访问的页面。缓存可以更好地利用该空间。
vm.swappiness 设置(也可以通过 /proc ... 实时修改)会影响它,但在调整它之前花一些时间仔细查看发生了什么,特别是与您的换入/换出计数器。sar
并且atop
是有用的工具。