topコマンド出力説明(組み込みシステム)

topコマンド出力説明(組み込みシステム)

topコマンドで得られた出力を理解するのに役立つ人はいますか?これは、oom-killerが呼び出され、私のデフォルトアプリケーションを終了する瞬間です。 VSZと%VSZの下に正確に何がありますか? 502m304.5とは何ですか?ここに画像の説明を入力してください。

答え1

出力は、top端末が認識しないいくつかのエスケープシーケンスが印刷されていることを示しています。空白の後に[さらにガベージ文字が表示されるビットは、ほとんどの端末で動作するエスケープシーケンスです。これらのシーケンスの最初の文字はエスケープ文字であり、端末はそれを空白で印刷します。たとえば、␛[7mタイトル行の先頭から強調表示を開始したり、␛[0m強調表示を停止するなどの操作を実行できます。

STAT列とVSZ列で正確に何が起こっているのかわかりませんが、上部にもいくつかの色の変更シーケンスが印刷されているようです(ここからm)。部分的に覆われています(上部が印刷中の可能性があります)。次の文字がその文字を覆うようにカーソルを左に動かします。

多くのプログラムでは、TERM環境変数を正しく設定するだけで十分です。これは、エスケープシーケンスをサポートしない端末タイプを示す必要があります。TERMどこかに値をハードコードするスクリプトがないことを確認してください。努力するTERM=dumb。 BusyBoxを使用している場合、ほとんどの端末にハードコードされたエスケープシーケンスがあるため、top運がないようです。エスケープシーケンスを削除するフィルタを介して実行できます。テストされていませんが、BusyBoxで動作します。

#!/bin/sh
script=$(printf 's/\033\\[[0-9;]*[A-Za-z]//g')
sed -e "$script" "$@"

(からこれより完全なPerlスクリプト)

答え2

~からhttp://pubs.opengroup.org/onlinepubs/9699919799/utilities/ps.html:

VSZ= "(仮想)メモリのプロセスサイズ(1024バイト)、10進整数で表示されます。

関連情報