Linux
Linux 記憶體記憶體:超過 85% 的記憶體記憶體並使用交換
我在linuxatemyram閱讀了有關 Linux 和 cachd 記憶體的資訊,但有些東西對我來說沒有意義,如果伺服器的負載甚至很低,它不會釋放一些記憶體記憶體,而是開始使用交換,這會使伺服器變慢..
即使是現在,當伺服器負載是
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
[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
是有用的工具。