straceのコマンド2

のは、サーバー上のトップの高負荷の結果を見てみましょう:

上

ヒント:あなたがトップを実行すると、「クリック1」を開き、CPUのリストを、押して「shift+p」CPUをソートします。

PHPのプロセスがより多くのメモリがかかりますが、それでも、システムメモリのバランスが、SWAPが深刻ではないながら、このケースでは、我々は簡単にそれが主な理由ではない、メインCPUは、PHPプロセスの数によって占有されて見つけることができます。

しかし、リストは、CPUのCPUで見ることができますが、主ではなく、ユーザモード「私たち」よりも、カーネルモード「SY」で消費され、私たちの経験では一致していません。Linuxオペレーティングシステムは、プログラムの動作を追跡するために使用されるツールをたくさん持っている、「straceの」機能を持つ関数呼び出しトレースカーネル・モードでは、我々は「straceのを」使用する必要がありますので、ここでは、「ltraceの」ユーザーモードの追跡を呼び出します:

  1. shell>strace-<PID>

プロセスを追跡するために直接使用straceの場合、その後、あなたの文字を待つフルスクリーンロールする傾向がある。しかし、ここで問題の核心を見たいと思って簡単なことではありませんが、幸いstraceのは時間で操作をまとめることができます。

  1. shell>strace-cp<PID>

「とは、c以下に示すように、操作のおそらく結果を各操作の合計時間をまとめるために使用されるオプション」:

straceの-cp <PID>

straceの-cp

もちろん、私たちはあなたにも、個々のクローンを追跡することができ、メインCPUのクローン操作が消費されて見ることができます:

  1. shell>strace--clone-<PID>

実際の動作時間は、アクションを追跡するための「e」オプションで、「T」オプションによって消費得ることができます:

straceの-T -eクローン-p <PID>

straceの-T -eクローン-p

明らかに、クローン操作はクローンの意味として、数百ミリ秒を必要とし、manページを参照してください。

clone() creates a new process, in a manner similar to fork(2). It is actually a library function layered on top of the underlying clone() system call, hereinafter referred to as sys_clone. A description of sys_clone is given towards the end of this page.

Unlike fork(2), these calls allow the child process to share parts of its execution context with the calling process, such as the memory space, the table of file descriptors, and the table of signal handlers. (Note that on this manual page, “calling process” normally corresponds to “parent process”. But see the description of CLONE_PARENT below.)

简单来说,就是创建一个新进程。那么在 PHP 里什么时候会出现此类系统调用呢?查询业务代码看到了 exec 函数,通过如下命令验证它确实会导致 clone 系统调用:

  1. shell>strace-eclone php -'exec("ls");'

最后再考大家一个题:如果我们用 strace 跟踪一个进程,输出结果很少,是不是说明进程很空闲?其实试试 ltrace,可能会发现别有洞天。记住有内核态和用户态之分。

  詳細、Linuxのstraceのコマンド  http://www.linuxidc.com/Linux/2012-12/75671.htm

  Linuxのstraceの追跡プロセス情報  http://www.linuxidc.com/Linux/2012-10/72432.htm

  コマンドヘビー級導入を使用して、Linuxの下でstraceの  http://www.linuxidc.com/Linux/2012-10/71823.htm

  ミスを解決するために、Linuxのstraceの  http://www.linuxidc.com/Linux/2011-08/41308.htm

  Linuxのプロセス制御--strace:追跡信号とシステムコール  http://www.linuxidc.com/Linux/2011-05/35823.htm

  プロセス分析ツールのLinuxプログラムの実行--strace  http://www.linuxidc.com/Linux/2013-11/93023.htm

おすすめ

転載: www.cnblogs.com/jiangzhaowei/p/11124576.html