Ubuntuでプログラムが使用しているメモリを確認するには?

Ubuntuでプログラムが使用しているメモリを確認するには?

アプリケーションで使用されている生のメモリデータを表示するには?たとえば、ファイル名がsomething.sh。ここで、コマンドを実行し./something.shてからRAMからアクセスするすべてのデータと、私のファイルシステム、ネットワークデータ、または使用している接続からアクセスするすべてのファイルを表示したいと思います。アプリケーションで使用されているメモリの16進ダンプである可能性があります。 Ubuntuでできますか?

ベストアンサー1

アプリケーションで使用される生のメモリデータを表示する方法...

プロセスのPIDを取得すると(次を使用して)ps(1)またはpidof(8)たとえば、/proc/PID/maps仮想アドレス空間のデータを使用してアクセスできます/proc/PID/memGilesはここに非常に詳細な答えを書きました。

...そして、私のファイルシステム、ネットワークデータ、または接続からアクセスするすべてのファイル

lsofそれはすべてです。netstatネットワーク関連記述子に適している可能性があります。たとえば、

$ netstat -tln    # TCP connections, listening, don't resolve names.
$ netstat -uln    # UDP endpoints, listening, don't resolve names.
$ netstat -tuan   # TCP and UDP, all sorts, don't resolve names.
$ lsof -p PID     # "Files" opened by process PID.

ノートnetstatスイッチ-pを使用すると、各行(少なくともユーザーの行)に関連するプロセスを印刷できます。特定のプロセスを選択するには、次のようにしますgrep

$ netstat -tlnp | grep skype    # TCP, listening, don't resolve (Skype).

これらのツールに関する追加情報:netstat(8)そしてlsof(8)。また見なさい:proc(5) (そして他の答えで言及されたツール)

おすすめ記事