「vmstat」は、ページングアクティビティがあることを示します。スワッピングプロセスを識別する方法は?

「vmstat」は、ページングアクティビティがあることを示します。スワッピングプロセスを識別する方法は?

.ubuntuを使用してUbuntu 16.04ノートブックでページングアクティビティを表示できるシナリオがありますvmstat 1 100

現在の負荷のサイズにより、プロセスはある程度ディスクにスワップアウトすることが予想されます。これは大丈夫です。しかし、ページ交換につながる要因を特定したいと思います。いつも(図を参照vmstat)これは、メモリ割り当てが改善される可能性があることを示す可能性があるためです。

私のシステム管理技術は少し錆びましたが、ルートシェルでは快適です。

スワップアクティビティを引き起こすプロセスを識別するには、どのコマンドを使用する必要がありますか?

答え1

パフォーマンスの問題(たとえば、長いCPU iowait時間)の場合は、通常、これらを監視するのが最善です。時間が経つにつれて実際、それ以降ではなく、特に短期プロセスが原因である可能性がある場合はさらにそうです。 Linuxで対話的に使用できるツールの1つは次のとおりです。iotop(固有リンク)(次の質問に対する回答も参照してください。ディスクI / Oトレースに関する質問です。)。このスクリプトを作成するか(バッチモード)、対話式に実行できますtop。たとえば、カーソルキーを使用してSWAPINでソートしたり、この-oオプションを使用して出力を複雑にすることができます。 Python ≥2.7が必要で、さまざまなカーネル設定パラメータを有効にする必要があります(iotop'sREADMEまたはmanページを参照)。

/proclike のデータを使用する代わりに、次を使用しますvmstatiotoptaskstats、これネットワークIPCカーネルからユーザー空間に直接プロセス統計を効率的に提供します。

ほとんどのLinuxバージョンでは、デフォルトは「交換性「60に設定すると、システムが適度に使用量が多い場合にページングアクティビティを表示するのは非常に正常です。関連パラメータがあります。vfs_cache_pressureいくつかのキャッシュ動作に必要です。)継続的なページングを観察している場合は、おそらくそれ以上です。

そうでなければ交換の使用が心配な場合時間の経過とともに、カーネルトレースでプロセスごとに使用量を交換します/proc/PID/statusgawk(≥v4.0)を使用すると、いくつかのタスクをすばやく実行できます。

gawk '/^Name:/{nm=$2} /^Pid:/{pid=$2} /^VmSwap:/{sw=$2} 
  ENDFILE{printf("%-24s %6i %6ikiB\n",nm,pid,sw)}' /proc/[0-9]*/status | 
sort -h -k 3

~によると文書交換されたshmem(共有メモリ)はここには含まれていませんが、これを気にする必要はありません。getswap.sh脚本:Eric Ljungströmまた、それを使用することができます、より高度なバージョンがありますこの回答

答え2

次のコマンドを試してください。

 ps -eo pid,cmd,vsz

プロセスID、実行されたコマンド、およびプロセスの仮想メモリサイズ(KiB)を含むプロセスが一覧表示されます。

関連情報