web-dev-qa-db-ja.com

RAMのLinuxのビューを見て断片化を判別する方法

私が知っている関連する唯一のプログラムはpmapですが、これは1つのプロセスのメモリのみを出力します。

physical memoryがどのように占有されているか、および物理プロセス全体のカーネルを含むプロセス/ライブラリによってRAM( pmapを使用したプロセスのPOV。

理想的には、グラフィカルインターフェイスも備えています。

そのようなツールがあるかどうか知っていますか?

図書館がもたらす曖昧さについては知っています。その場合は、1ピクセル幅の線と、そのライブラリの実際の場所への矢印を表示できます。

これは何のために必要ですか? RAM断片化を表示します。

27
Flavius

メモリの断片化

Linuxシステムがしばらく実行されていると、メモリの断片化が増加する可能性があります。これは、システムで実行されているアプリケーションの性質に大きく依存します。より多くのプロセスがメモリを割り当てて解放すると、より速いメモリが断片化されます。また、カーネルは、要求されたサイズに応じて十分なメモリを時間どおりに最適化できない場合があります。これが発生した場合、十分な空きメモリが利用可能であっても、アプリケーションはメモリの連続した大きなチャンクを割り当てることができない場合があります。 2.6カーネル、つまりRHEL4とSLES9から、メモリ管理が大幅に改善され、メモリの断片化の問題が軽減されました。

メモリの断片化を確認するには、マジックSysRqキーを使用できます。次のコマンドを実行するだけです。

# echo m > /proc/sysrq-trigger

このコマンドは、現在のメモリ情報を/ var/log/messagesにダンプします。次に、RHEL3 32ビットシステムの例を示します。

Jul 23 20:19:30 localhost kernel: 0*4kB 0*8kB 0*16kB 1*32kB 0*64kB 1*128kB 1*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 1952kB)
Jul 23 20:19:30 localhost kernel: 1395*4kB 355*8kB 209*16kB 15*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 12244kB)
Jul 23 20:19:31 localhost kernel: 1479*4kB 673*8kB 205*16kB 73*32kB 21*64kB 847*128kB 473*256kB 92*512kB 164*1024kB 64*2048kB 28*4096kB = 708564kB)

最初の行はDMAメモリの断片化を示しています。2番目の行は低メモリの断片化を示し、3行目は高メモリの断片化を示しています。出力は低メモリ領域のメモリの断片化を示しています。しかし、多くの大きなメモリがありますハイメモリ領域で使用可能なチャンク、たとえば28 4MB。

メモリ情報が/ var/log/messagesにダンプされなかった場合、SysRqは有効になっていませんでした。 sysrqを1に設定すると、SysRqを有効にできます。

# echo 1 > /proc/sys/kernel/sysrq

2.6カーネル、つまりRHEL4とSLES9以降では、メモリ情報をダンプするためにSysRqは必要ありません。/proc/buddyinfoでメモリの断片化を確認するだけです。

以下は、2.6カーネルを実行する64ビットサーバーの出力です。

# cat /proc/buddyinfo

Node 0, zone DMA 5 4 3 4 3 2 1 0 1 1 2
Node 0, zone Normal 1046 527 128 36 17 5 26 40 13 16 94
# echo m > /proc/sysrq-trigger
# grep Normal /var/log/messages | tail -1
Jul 23 21:42:26 localhost kernel: Normal: 1046*4kB 529*8kB 129*16kB 36*32kB 17*64kB 5*128kB 26*256kB 40*512kB 13*1024kB 16*2048kB 94*4096kB = 471600kB
#

この例では、SysRqを再度使用して、/ proc/buddyinfoの各番号が何を参照しているかを示しています。

出典: http://www.puschitz.com/pblog/

28
user405725