運用保守ツールの保存

strace と ltrace について学習します。これら 2 つのツールは、プログラムが失敗したり、ハングしたり、さらにはクラッシュしたりするが、その理由がわからない場合、または全体的なパフォーマンスを把握したい場合に非常に役立ちます。プロファイル パラメータ (-c) に注目し、実行中のプロセス パラメータ (-p) に追加します。

注文

strace -tt -T -v -f -e trace=file -o /data/log/strace.log -s 1024 -p 23489

パラメータ

-tt 在每行输出的前面,显示毫秒级别的时间
-T 显示每次系统调用所花费的时间
-v 对于某些相关调用,把完整的环境变量,文件stat结构等打出来。
-f 跟踪目标进程,以及目标进程创建的所有子进程
-e 控制要跟踪的事件和跟踪行为,比如指定要跟踪的系统调用名称
-o 把strace的输出单独写到指定的文件
-s 当系统调用的某个参数是字符串时,最多输出指定长度的内容,默认是32个字节
-p 指定要跟踪的进程pid, 要同时跟踪多个pid, 重复多次-p选项即可。

デバッガ

strace -tt -f  ./some_server ../conf/some_server.conf

すでに実行中のプログラムをデバッグする

nginxのpidを取得する

pidof nginx
1111

トラック、テストトラックエフェクト、nginx -s reload

strace -p 1111

デバッガーの起動時にロードされるファイル

-e trace=file オプションで指定したため、ここでの出力にはファイル アクセスに関連するコンテンツのみが表示されます。

strace -tt -T -f -e trace=file -s 1024 -o output.log nginx -s reload

経験

プログラムが起動に失敗したり、エラーが報告されたりする原因は、プログラムが何をしたかは神のみぞ知るです。このコマンドは、一部の動作を分析するのに非常に役立ちます。

たとえば、構成ファイルがないとプログラムを開始できない場合、または権限がないにもかかわらずプログラムに明確なプロンプトがない場合は、この時点で strace を使用してそれを追跡できます。

laravelでの使用例はファイル読み込みのシーケンスを解析できる

strace -tt -T -f -e trace=file -s 1024 -o output.log php artisan list

もちろん、これは swoole のより多くのシナリオで使用されます

おすすめ

転載: blog.csdn.net/q116975174/article/details/104501396