ホームページ  >  記事  >  バックエンド開発  >  PHPインクルードクラスファイルのタイムアウト問題の処理、_PHPチュートリアル

PHPインクルードクラスファイルのタイムアウト問題の処理、_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:07:43833ブラウズ

phpにはクラスファイルのタイムアウトの問題処理が含まれています、

最近、クラス関数の自動ロードを実行すると PHP が常にタイムアウトになることに気づきました。PHP のスロークエリログを追跡すると、プログラムが特定のクラスファイルをインクルードする際にスタックし、実際にタイムアウトになっていることがわかりました。

初期の位置付けは、IO 応答がタイムアウトし、ハードディスクの読み取りに問題があったということです。

いくつかのコマンドを使用して検索します:

iostat -d -x -k 1 10 // 10 回実行して、iostat の wait パラメーターが非常に大きく、通常は 5ms 以下であることを確認します。await svctm の 2 つのパラメーターが近いほど、io パフォーマンスが向上します。 。

他のブログを参照してください

await: 各 IO リクエストの平均処理時間 (単位はマイクロ秒とミリ秒)。これは IO 応答時間として理解できます。通常、システム IO 応答時間は 5 ミリ秒未満である必要があり、10 ミリ秒を超える場合はさらに大きくなります。
この時間にはキュー時間とサービス時間が含まれます。つまり、通常の状況では、await が svctm よりも大きくなり、その差が大きいほどキュー時間が長くなります。システムに問題が発生したことを示します。 svctm は、各デバイス I/O 操作の平均サービス時間 (ミリ秒単位) を表します。 svctm の値が await に非常に近い場合は、待機している I/O がほとんどなく、ディスクのパフォーマンスが非常に優れていることを意味します。 await の値が svctm の値よりもはるかに高い場合は、I/O キューが存在することを意味します。待機時間が長すぎると、システム上で実行されているアプリケーションの速度が低下します。

sudo iotop -o, // ハードディスク上に割り当てられているプログラムを確認し、プロセスのIO占有率を確認する

sudo perf top // プロセスIO使用率を確認する

sudo hdparm -t /dev/**** ディスク読み取り効率を確認する

表示: バッファリングされたディスク読み取りのタイミング: 3.14 秒で 10 MB = 3.18 MB/秒

中断されない睡眠を見る

true; do ps auxf | '{if($8=="D") print $0;}';

上記のコマンドを実行したところ、ハードディスクの読み取り効率が非常に低くなりました。これは、ハードディスクに不良セクタがある可能性があると推測されます。

http://www.bkjia.com/PHPjc/954663.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/954663.html技術記事 PHP インクルード クラス ファイルのタイムアウトの問題に対処する 最近、PHP スロー クエリ ログを追跡していると、あるクラス ファイルをインクルードするとプログラムがスタックすることがわかりました。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。