Linux

Linux 記憶體記憶體:超過 85% 的記憶體記憶體並使用交換

  • August 8, 2012

我在linuxatemyram閱讀了有關 Linux 和 cachd 記憶體的資訊,但有些東西對我來說沒有意義,如果伺服器的負載甚至很低,它不會釋放一些記憶體記憶體,而是開始使用交換,這會使伺服器變慢..

即使是現在,當伺服器負載是load average: 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)交換,這是偶然且微不足道的。

記憶體記憶體是已被磁碟上塊的內容填充的空閒記憶體。一旦其他任何東西需要空間,它將被騰出。這是提高性能的好東西。

將您的問題與 伺服器拒絕使用交換分區進行比較。

至於為什麼伺服器可能會交換數據而不是釋放記憶體,可能是您的記憶體數據被讀取的次數遠多於儲存在記憶體中的數據。程序有時會有他們很少(如果有的話)訪問的頁面。記憶體可以更好地利用該空間。

vm.swappiness 設置(也可以通過 /proc… 實時修改)會影響這一點,但在調整它之前要花一些時間仔細觀察正在發生的事情,尤其是換入/換出計數器。sar並且atop是有用的工具。

引用自:https://serverfault.com/questions/415557