web-dev-qa-db-ja.com

どのページが長い読み込み時間を引き起こしているのかをApacheから見つける方法は?

Apacheにロードするのに最も時間がかかるPHPスクリプトを見つけるにはどうすればよいですか?

6
ineednotes

これを行うにはいくつかの方法があります。

1:ウェブサーバーで mod_status を有効にします。これにより、/ server-status /を参照して、Apacheサーバーが一般的にどのように動作しているかの概要を把握できます。この場所へのアクセスを制限することを忘れないでください:

ExtendedStatus on
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0.0/24
</Location>

2: LogFormat ディレクティブを変更して、処理時間を追加します。次に、URIを応答時間に関連付けることができます。

LogFormat "%h %t \"%r\" %b sec:%T usec:%D"      

これにより、リモートIP、リクエストの日時、リクエスト、送信されたバイト数、秒、マイクロ秒が表示されます。

3:スクリプトのメモリサイズとスクリプトのヒット率については、 Xcache に付属の管理コンソールが非常に優れています。大規模なクラス階層を持つスクリプトは、メモリ内の多くのメガバイトに拡張できます。

4:phpスクリプトのプロファイリングが役立つ場合があります。単一のスクリプトのプロファイリングに集中したい場合は、 Xdebug が確かに役立ちます。ユーザーDamienが方法を提案します。 メモリ使用量 をログに記録し、microtimeも使用することをお勧めしますが、次のように、ログに記録するためのしきい値を設定します。

$THRESH = 2;

$profile = array();
$profile['start'] = microtime( true );
// stuff
$profile['end'] = microtime( true );
$profile['delta'] = $profile['end'] - $profile['start'];

if( $profile['delta'] >= $THRESH ) 
    error_log( __FILE__.": ".$profile['delta']." seconds " );

しきい値を調整すると、ログがずっときれいに保たれます。

7
memnoch_proxy

Y Slow は、ページの読み込み速度のパフォーマンスを確認する方法の1つです。

0
ukanth

このコマンドを使用して、応答に時間がかかりすぎるものを特定しています。

$ w3m http://localhost/server-status | tee | grep "GET\|HEAD\|POST" | awk '{if ($6>15) print}'
0
Akira Yamamoto

スクリプトに応じて、マイクロタイム関数を使用できます。

$stime = microtime();  
$stime = explode(" ",$stime);  
$stime = $stime[1] + $stime[0];  

//Some Code...

$mtime = microtime();  
$mtime = explode(" ",$mtime);  
$mtime = $mtime[1] + $mtime[0]; 

$totaltime = ($mtime - $stime);
echo $totaltime;

コードの欠陥部分を見つけるために必要なだけ休憩を入れます。
(しかし、おそらくこれはSO回答...)

0
damusnet

Apache JMeter で実行します。

Apache JMeterは、静的リソースと動的リソース(ファイル、サーブレット、Perlスクリプト、Javaオブジェクト、データベースとクエリ、FTPサーバーなど)の両方でパフォーマンスをテストするために使用できます。サーバー、ネットワーク、またはオブジェクトの重い負荷をシミュレートして、その強度をテストしたり、さまざまな負荷タイプでの全体的なパフォーマンスを分析したりできます。これを使用して、パフォーマンスのグラフィカルな分析を行ったり、重い同時負荷でのサーバー/スクリプト/オブジェクトの動作をテストしたりできます。 。

0
John T

レポートツールを使用してサーバーログを実行します。まともな人は、平均的なユーザーが各ページをダウンロードするのにかかる時間を教えてくれるはずです。また、各ページの最小ダウンロード時間と最大ダウンロード時間、およびその他の多くの統計情報も表示されます。

0
Chris Nava