Linux
ATOP 顯示紅線 vmcom 和 vmlim。這是什麼意思?
頂部的實用程序顯示:
ATOP - MyServer 2013/01/07 00:03:57 10 seconds elapsed PRC | sys 2.18s | user 8.33s | #proc 141 | #zombie 0 | #exit 0 | CPU | sys 21% | user 139% | irq 0% | idle 228% | wait 11% | cpu | sys 5% | user 40% | irq 0% | idle 51% | cpu002 w 3% | cpu | sys 5% | user 35% | irq 0% | idle 56% | cpu001 w 3% | cpu | sys 7% | user 30% | irq 0% | idle 61% | cpu000 w 2% | cpu | sys 4% | user 34% | irq 0% | idle 61% | cpu003 w 1% | CPL | avg1 1.00 | avg5 1.12 | avg15 1.25 | csw 389208 | intr 223367 | MEM | tot 23.6G | free 136.3M | cache 6.7G | buff 66.5M | slab 205.1M | SWP | tot 0.0M | free 0.0M | | vmcom 21.8G | vmlim 11.8G | DSK | sdc | busy 12% | read 70 | write 109 | avio 6 ms | DSK | sde | busy 4% | read 37 | write 131 | avio 2 ms | DSK | sdd | busy 3% | read 38 | write 144 | avio 1 ms | NET | transport | tcpi 160 | tcpo 171 | udpi 0 | udpo 0 | NET | network | ipi 188 | ipo 172 | ipfrw 0 | deliv 160 | NET | vnet1 0% | pcki 510 | pcko 442 | si 60 Kbps | so 26 Kbps | NET | eth0 0% | pcki 449 | pcko 527 | si 27 Kbps | so 65 Kbps | NET | vnet0 0% | pcki 0 | pcko 44 | si 0 Kbps | so 3 Kbps | NET | vnet7 0% | pcki 1 | pcko 44 | si 0 Kbps | so 3 Kbps | NET | vnet2 0% | pcki 0 | pcko 43 | si 0 Kbps | so 3 Kbps | NET | vnet3 0% | pcki 0 | pcko 43 | si 0 Kbps | so 3 Kbps | NET | vnet6 0% | pcki 0 | pcko 43 | si 0 Kbps | so 3 Kbps | NET | vnet5 0% | pcki 0 | pcko 5 | si 0 Kbps | so 0 Kbps | NET | vnet4 0% | pcki 0 | pcko 5 | si 0 Kbps | so 0 Kbps | NET | vnet8 0% | pcki 0 | pcko 5 | si 0 Kbps | so 0 Kbps | NET | bond0 ---- | pcki 449 | pcko 527 | si 27 Kbps | so 65 Kbps | NET | br0 ---- | pcki 157 | pcko 126 | si 12 Kbps | so 17 Kbps | NET | lo ---- | pcki 46 | pcko 46 | si 3 Kbps | so 3 Kbps |
我的問題如下: 1)所有都是白色的,只有 SWP 的線是紅色的。我有 24GB RAM,我不使用交換。我該如何解決這個問題?是大問題嗎?我正在毫無問題地工作,但誰知道它是否不好?
2)vmcom 和 vmlim 是什麼意思?
CPU是四核的。RAID5 中的 3HDD。我有 Debian Squeeze x64 並使用 KVM 和 MySQL。
謝謝你的答案
主要查詢的答案在下面 - 但首先是關於 Mirra 建議的警告:
請注意:
在:/proc/sys/vm/overcommit_memory 我嘗試放在那裡 2。
在這種情況下,即使物理記憶體可用,當 vmcom 大於 vmlim 時,所有向作業系統請求記憶體的程序都會收到錯誤(我有很多錯誤,並且在基本系統應用程序(如 compiz)中失敗)。因為:
vmlim = SWAP_size + 0.5 * RAM_size。
其中 0.5 (50%) 是 /proc/sys/vm/overcommit_ratio 參數的預設值,您很容易像我一樣遇到很多錯誤。
對主要問題的回答:最好將 overcommit_memory 參數的更改恢復為預設值(我為 0(Ubuntu 12.04 LTS),但其他作業系統可以為 1)。根據偉大的文章,我們可以計算程序實際使用的記憶體:
MemoryUsed ~ tot - (cache + buff + free) ~ 23.6G - (6.7G + 0.067G + 0.136G) ~ 16.7G
所以程序實際上只使用了 16.7G(來自 23.6G 安裝的 RAM),並且可以忽略輸出頂部的紅線。