Linux システム開発者として、プロセスのフリーズやアプリケーションの応答なしなどの問題に遭遇したことがありますが、それらを効果的に分析して処理する方法がわかりませんか?そうであれば、ここは正しい場所に来ています!この記事では、プロセス動作のメカニズムをより深く理解し、問題を効果的に発見して解決するために役立つ、Linux でのプロセス分析テクノロジーを紹介します。
1. ps とは何ですか?
プロセスを監視および制御するには、まず現在のプロセスの状況を理解する必要があります。つまり、現在のプロセスを表示する必要があります。ps コマンドは最も基本的なプロセス表示コマンドです。このコマンドを使用して、実行中のプロセスとその実行ステータス、プロセスが終了したかどうか、プロセス内にゾンビが存在するかどうか、どのプロセスがリソースを占有しすぎているかなどを確認します。つまり、ほとんどの情報は、これを実行することで取得できます。指示。
ps は瞬間的なプロセスのステータスを表示しますが、動的かつ継続的ではありません。プロセスをリアルタイムで監視したい場合は、top コマンドを使用する必要があります。
基本パラメータ:
-A: すべてのプロセスが表示され、-e と同じ効果があります;
-a: 他のユーザーのプロセスを含む、現在の端末のすべてのプロセスを表示します。
-u: ユーザー指向のプロセスのステータス;#xx: 通常、より完全な情報をリストするために a パラメーターと一緒に使用されます。
出力形式の計画:l: PID 情報のより長く詳細なリスト;
j :ジョブフォーマット
-f: より完全な出力を作成します。
以下のコマンドを練習して、さまざまなパラメーターがどのような影響を与えるかを確認してみましょう。
2. ps コマンドをパラメータなしで実行すると、何が出力されますか?これは基本的な ps の使用法です。コンソールでこのコマンドを実行して結果を確認してみましょう。
結果にはデフォルトで 4 列の情報が表示されます:
PID: 実行中のコマンド(CMD)のプロセス番号
TTY: コマンドが実行される場所 (ターミナル)
TIME: 実行中のコマンドが占有する CPU 処理時間
CMD: このプロセスによって実行されるコマンド
情報はソートされずに表示されます。
3. 現在のプロセスをすべて表示するにはどうすればよいですか?-a パラメータを使用します。-a はすべてを表します。同時に、x パラメーターを追加すると、端末を制御しないプロセスが表示されます。
リーリー 4. プロセスのユーザーに応じて情報をフィルタリングするにはどうすればよいですか?特定のユーザー プロセスを表示する必要がある場合は、-u パラメーターを使用できます。たとえば、ユーザー「pungki」のプロセスを表示したい場合は、次のコマンドを使用できます:
リーリー 5. CPU とメモリの使用量によってプロセスをフィルタリングするにはどうすればよいですか?CPU またはメモリの使用量によって結果をフィルタリングして、リソースを消費しているプロセスを特定したい場合があります。これを行うには、aux パラメータを使用して包括的な情報を表示します。
リーリー 結果が非常に長い場合は、パイプを使用し、フィルター処理にコマンドを減らすことができます。デフォルトの結果セットはソートされていません。並べ替えは –sort コマンドで実行できます。
5.1 CPU 使用率に応じて昇順に並べ替えますリーリー
5.2 メモリ使用量に応じて昇順に並べ替えますリーリー
5.3 それらを 1 つのコマンドに結合し、上位 10 件の結果をパイプ処理することもできます:リーリー
6. プロセス名と PID でフィルタリングするにはどうすればよいですか?-C パラメータに続けて、探しているプロセスの名前を指定します。たとえば、getty という名前のプロセスに関する情報を表示する場合は、次のコマンドを使用できます:
リーリー さらに詳細を確認したい場合は、-f パラメーターを使用して、フォーマットされた情報リストを表示できます: リーリー 7. スレッドに基づいてプロセスをフィルタリングするにはどうすればよいですか?特定のプロセスのスレッドを知りたい場合は、-L パラメーターに続いて特定の PID を使用できます。
リーリー 8. プロセスをツリー形式で表示するにはどうすればよいですか?プロセスをツリー構造で表示したい場合は、-axjf パラメーターを使用できます。
$ ps -axjf
或者可以使用另一个命令。
$ pstree
9. 如何显示安全信息?
如果想要查看现在有谁登入了你的服务器。可以使用ps命令加上相关参数:
$ ps -eo pid,user,args
参数 -e 显示所有进程信息,-o 参数控制输出。Pid,User 和 Args参数显示PID,运行应用的用户和该应用。
能够与 -e 参数 一起使用的关键字是args, cmd, comm, command, fname, ucmd, ucomm, lstart, bsdstart 和 start。
10. 如何格式化输出root用户(真实的或有效的UID)创建的进程?
系统管理员想要查看由root用户运行的进程和这个进程的其他相关信息时,可以通过下面的命令:
$ ps -U root -u root u
-U 参数按真实用户ID(RUID)筛选进程,它会从用户列表中选择真实用户名或 ID。真实用户即实际创建该进程的用户。
-u 参数用来筛选有效用户ID(EUID)。
最后的 u 参数用来决定以针对用户的格式输出,由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME 和 COMMAND这几列组成。
这里有上面的命令的输出结果:
11. 如何使用PS实时监控进程状态?
ps 命令会显示你系统当前的进程状态,但是这个结果是静态的。
当有一种情况,我们需要像上面第四点中提到的通过CPU和内存的使用率来筛选进程,并且我们希望结果能够每秒刷新一次。为此,我们可以将ps命令和watch命令结合起来。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
如果输出太长,我们也可以限制它,比如前20条,我们可以使用 head 命令来做到。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’
这里的动态查看并不像top或者htop命令一样。但是使用ps的好处是你能够定义显示的字段,你能够选择你想查看的字段。
举个例子,如果你只需要看名为’pungki’用户的信息,你可以使用下面的命令:
$ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’
12. 最后
你也许每天都会使用ps命令来监控你的Linux系统。但是事实上,你可以通过ps命令的参数来生成各种你需要的报表。
ps命令的另一个优势是ps是各种 Linux系统都默认安装的,因此你只要用就行了。不要忘了通过 man ps来查看更多的参数。
通过本文,我们已经学习了Linux下的进程分析技术,理解了进程的运行机制和调度方法,并且掌握了一些常见的进程分析工具和技巧。进程是Linux系统中非常重要的概念和组成部分,良好的进程分析技术可以帮助我们快速定位和解决问题,提高系统的运行效率和稳定性。希望本文能够对你有所启发和帮助,让你更加深入地了解进程分析领域,在职业发展中更上一层楼!
以上がLinux でのプロセス分析テクノロジーを徹底調査!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。