2

これが私の一番の出力です:

6747 example.com 15 0 241m 19m 8188 R 29.9 [CPU] 0.2 [RAM] 3:24.89 php

31798 mysql 15 0 1952m 422m 5384 S 12.0 [CPU] 5.3 [RAM] 9:00.27 mysqld

PHPのCPU使用率を見てください。どのファイルがこの負荷を引き起こしているのかわかりません。ツリーの下でCPUを使用しているファイルを表示するためのモジュールはありますか?私はこのように意味します:

6747 example.com 15 0 241m 19m 8188 R 29.9 [CPU] 0.2 [RAM] 3:24.89 php

                     5.49%                          index.php
                    15.39%                         videos.php
                        x%                              y.php

31798 mysql 15 0 1952m 422m 5384 S 12.0 [CPU] 5.3 [RAM] 9:00.27 mysqld

mysqlにも同じことが必要です。どのクエリが現在実行されているのか、どのくらいの時間がかかるのかを確認したいと思います。

4

3 に答える 3

3

最も単純なオプション (最も正確とは言えませんが、最も単純です) は次のとおりです。

  • PHP の場合、ある PHP ファイルを別のファイルと比較する場合、最も時間がかかるプロセスが最も多くの CPU を使用していると想定します。ネットワーク プロファイラー (Chrome と IE、または Firebug に組み込まれている) を使用して、どのプロセスに最も時間がかかるかを調べます。それができない場合は、ユーザー fiddler (Windows の場合) または Charles (Mac の場合)。データ応答時間を削除し、残りを平均化します = 応答を生成する時間 概算 = CPU 使用率。これには、外部呼び出し、memcached 呼び出し、mySQL 呼び出しなどが含まれることに注意してください。

  • mySQL の場合、スロー クエリ ログは非常に貴重です。(my.cnf で構成し、サーバーを再起動する必要がありますが、これは必須と見なす必要があります。)

  • 詳細な診断については、Xdebug (Xesued の提案による) を使用すると、スクリプトの個々の部分のプロファイル (およびデバッグ) を行うことができます。ただし、さらに遅くなるため、本番環境にはお勧めしません。

  • 別の粗雑な方法は、「echo microtime(true);」です。スクリプトのさまざまな場所で、またはその情報をログ ファイルに送ります。(スクリプトの開始時にログ ファイルを開き、さまざまな時点でマイクロタイムを記録します。大きなギャップを探します。)

于 2012-07-20T03:44:09.780 に答える
1

実行時にPHPスクリプトの負荷を判断する方法がわかりません。(それが可能かどうかさえわかりません)。ただし、Xdebugのプロファイラーを使用すると、スクリプトが遅い場所を特定するのに役立ちます。

Xdebugプロファイラー

スローダウンの90%以上をキャッチするのに役立つ優れたツールです。

MySQLに関する限り:関連する質問があります:how-to-analyze-query-cpu-time

于 2012-07-20T03:35:25.807 に答える
0

直接利用できるものはないと思いますが、これらのスクリプトのそれぞれが個別のプロセス (CLI で個別に呼び出されるようなもの) として実行されると仮定すると、それを使用getmypid()して CPU 負荷ログと関連付けることができます。

于 2012-07-20T03:43:12.560 に答える