マシンを独占しているプロセスを見つける方法
シナリオ:突然、コンピューターの動作が遅くなったように感じます。マウスは動きますが、ウィンドウが開くまでに時間がかかりuptimeます。 負荷の原因となっているプロセスを見つける最も速い方法は何ですか? 現在、「トップ」ツールや同様のツールは、CPUまたはメモリの使用量を表示しますが、同時に両方を表示しないため、答えにはなりません。私が必要なのは、発生時に入力できる単一のコマンドです-のいずれかを理解するもの プロセスXのため、システムは8GBのRAMをディスクにスワップしようとしています... または プロセスXはディスク全体をシークします または プロセスXは400%のCPUを使用します」 したがって、私が探しているのは、iostat、htop / atop、および同様のツールが次のような出力で1つに実行されることです。 1235 cp - Disk trashing 87 chrome - Uses 2 GB of RAM 137 nfs_bench - Uses 95% of the network bandwidth 分析できる数値を提供するツールは必要ありませんが、現在の負荷の原因となっているプロセスを正確に通知するツールです。キーボードの前にいるユーザーが「プロセス」の書き方をほとんど知らないが、「常駐サイズ」、「仮想メモリー」、または「プロセスライフサイクル」になると、ユーザーはすぐに圧倒されます。 私の議論は次のようになります:ユーザーが問題に気づきます。何千もの理由がある可能性があります...まあ、ほぼ:-)ユーザーは問題の原因を知りたがっています。 現在のソリューションでは多くの数値が得られますが、これらの数値の意味を知る必要があります。私が探しているのはメタツールです。データの99%は問題とは無関係です。したがって、ツールがすべきことは、リソースを占有し、「このプロセスは多くのCPUを必要とし、これは多くのIRQを生成し、このプロセスは多くのRAMを割り当てる(そしてそれはまだ成長している)」と一緒にリストするプロセスを探すことです。 これは比較的短いリストになります。たとえば、このリストから犯人を特定する方が、たとえばhtop5000程度の数字が得られるが、自分でマルチスレッドプロセスを折りたたむ必要がある(50行あるVIRT 2750Mが、たった16 GBのRAM-マシンは自動的にスワップして死ぬはずですが、もちろん、これはデータが誤って解釈される可能性があるため、すぐに発生する可能性があります)。