web-dev-qa-db-ja.com

busyboxの「トップ」出力を解釈するには?

小さな埋め込みARMシステムでBusyBoxを使用しています。特にPythonプロセスがリストされているプロセスの場合、 "top"出力を読み込もうとしています。方法このプロセスが使用している実際のメモリはどれくらいですか?また、VSZは何の略ですか?システムには64 MBのRAMしかありません。

 Mem:41444K使用、20572K空き、0K shrd、0Kバフ、18728Kキャッシュ
 CPU:3%usr 3%sys 0%nic 92%アイドル0%io 0%irq 0%sirq 
平均負荷:0.00 0.04 0.05 1/112 31667 
 PID PPIDユーザー統計VSZ%VSZ%CPUコマンド
 777 775 python S 146m 241% 3%/ usr/bin/python -u-dpdsrv.py 
8
SeanLabs

VSZ(またはVIRTのバージョンに応じてtop)は、プロセスのアドレス空間にマップされたメモリの量です。これには、プロセスの実行可能ファイルと共有ライブラリ、そのヒープとスタック、およびマップされた他のすべてによって裏打ちされたページが含まれます。

表示されているサンプル出力の場合、仮想サイズはシステムの物理メモリの量よりも大きいため、プロセスのアドレス空間の一部(ほとんど!)のページは、物理的にRAMに存在していません。それは問題ではありません:多くのプログラムは大量のコードを含み、多くの共有ライブラリをマップしますが、実際にはそのコードの特定の部分のみを使用するか、少なくとも同時にコードの特定の部分のみを使用するため、カーネルが削除できますそれらが使用されないときはいつでも、または最初からそれらを決してロードしないために、メモリからの未使用部分。

お使いのバージョンのtopにはRES列が表示されていないようです。これは、プロセスのアドレス空間内のメモリのどの程度が現在RAMに常駐しているかを示します。

4
Celada