サーバーは 30 日間稼働しており、一部のリクエストが遅くなりました。解決してください
サーバーは Alibaba Cloud、デュアルコア、4G メモリ上にデプロイされています。 centos6.4、apache、php5.3、mysql、Yii フレームワーク。 1日のPVは3万以上あり、負荷は高くありません。
30 日間実行した後、ここ 2 日間でリクエストに時間がかかり、1 ~ 10 秒ほど時間がかかることがあります。
MYSQL プロファイルを通じて、0.03 秒以上クエリされた SQL ステートメントを記録したところ、更新、テーブルのクローズ、終了、クエリの終了の 1 つまたは 2 つに、0.0 秒から数秒の範囲で長い時間がかかることがわかりました。これらのステートメントは、比較的単純な update、insert、select ステートメントです。
実行に時間がかかり、SQL 低速クエリ レコードが存在しないリクエストもあります。
同じリクエストでも、遅い場合もあれば速い場合もあります。 。 top コマンドで監視すると、CPU は基本的に 10% 以上、メモリは 30%、CPU wa は通常 30% 未満、場合によっては 40% 以上に達します。
原因を突き止めるのを手伝ってください。 。
サーバー
セントス
mysql
php
-----解決策--------------------------------データベース設計の問題、インデックス作成設計の問題のように感じます。しかし、mysql に遅いクエリがないことは明らかではありません。
------解決策---------apache log 、mysql などのさまざまなログを確認します。ログを取得して異常がないか確認します。
------解決策------------------Alibaba Cloud の IO ボトルネック問題は 1 日や 2 日では解決できませんわかりました...
-----解決策---------なんと言いますか、私現在、国内のクラウドサーバーはあまり信頼できません。これまでいくつかのクラウドサーバーを使用しましたが、時々不安定になりましたが、主な原因は接続できないことやマシンに問題があったことはありません。行き詰まっています。
------解決策---------データ量が多いとクエリ速度が遅くなる当然遅くなります。 。 。
これは、同時実行の量、現在のネットワークの状態、データベースの現在の負荷に関係しているとのことでした。
データベースのロックは書き込み速度に影響を与える場合があります。特に多数の MYISAM テーブルを使用する場合、読み取りと書き込みを同時に行うテーブルにとって、テーブル レベルのロックは致命的です。したがって、特定のテーブルがユーザーに対して書き込み操作を行わないことが 100% 確信できない限り、innodb を使用するようにしてください。