busybox "top"出力を解釈するには?

busybox "top"出力を解釈するには?

私はコンパクトな組み込みARMシステムでBusyBoxを使用しています。 「トップレベル」出力、特にリストされているPythonプロセスを読み取ろうとしています。プロセスで物理メモリをどのくらい使用しますか?そしてVSZとはどういう意味ですか?システムには64MBのRAMしかありません。

メモリ:41444K使用済み、20572K使用可能、0Kフラグメンテーション、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

答え1

VSZ(またはVIRTバージョンによってtop)は、プロセスアドレス空間にマップされたメモリ量です。これには、プロセスの実行可能ライブラリと共有ライブラリ、ヒープとスタック、マップされているすべてのアイテムがサポートするページが含まれます。

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

あなたのバージョンには、現在のプロセスアドレス空間のRAMにあるメモリ量を示す列がtop表示されていないようです。RES

関連情報