上部のユーティリティは次のように表示します。
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を使用しています。
回答ありがとうございます
答え1
主な質問に対する答えは以下の通りです。しかし、まずMirraのアドバイスに関する警告があります。
これに注意してください:
場所:/proc/sys/vm/overcommit_memoryそこに2を入れようとしました。
この場合、物理メモリを使用できてもvmcom が vmlim より大きい場合、オペレーティングシステムがメモリを要求するすべてのプロセスでエラーが発生します。(コンピーズなどの基本的なシステムアプリケーションを使用するとエラーと失敗がたくさん発生しました。)
vmlim=SWAP_size+0.5*RAM_size.
/proc/sys/vm/overcommit_ratioパラメータのデフォルト値が0.5(50%)の場合、私と同じようにエラーが発生する可能性があります。
回答主な質問:overcommit_memoryパラメータの変更をデフォルト値に戻すことをお勧めします(私の場合は0(Ubuntu 12.04 LTS)でしたが、他のオペレーティングシステムの場合は1かもしれません)。 ~によると素晴らしい記事プロセスで使用される物理メモリを計算できます。
使用済みメモリー〜フル - (キャッシュ+バッファー+空き容量)〜23.6G -(6.7G + 0.067G + 0.136G)〜16.7G
したがって、プロセスは実際には16.7G(インストールされた23.6G RAMで)のみを使用し、上部出力の赤い線は無視できます。
答え2
マニュアルatop
ページは、この数が実際に何を意味するのかを説明するのに役立ちます。
メモリ
コミットされた仮想メモリが制限(SWP行の「vmcom」および「vmlim」)を超えると、システムオーバーコミットのためにSWP行に色が付けられます。
南西部の水資源国
仕事を変えて情報を過度に使います。
この行には、ディスクの合計スワップスペースサイズ(「tot」)と利用可能なスワップスペースサイズ(「free」)が含まれています。
また、コミットされた仮想メモリスペース(「vmcom」)とコミットされたスペースの最大制限(「vmlim」、デフォルトではスワップサイズにメモリサイズの50%を加えた値)が表示されます。コミットスペースは、プロセス内のすべてのプライベートメモリスペース割り当て用に予約された仮想スペースです。厳密なオーバーコミット処理が設定されている場合(vm.overcommit_memoryは2)、カーネルはコミットされたスペースが制限を超えていることを確認します。
答え3
atop
上記のように、システムがメモリを過度にコミットしていることを意味します。コア:
オーバーコミットポリシーはsysctlを介して設定されます
vm.overcommit_memory
。
vm.overcommit_ratio
オーバーコミットはvm.overcommit_kbytes
(パーセント)または(絶対値)に設定できます。現在、超過限度額とコミットメントの金額は、
/proc/meminfo
それぞれCommitLimitとComfilled_ASで確認できます。
乱用を防ぐために/proc/sys/vm/overcommit_memory
設定することができます2
。