Webサーバ(Apache+PHP+MySQL)がとても重いので負荷の調査をしてみた

顧客のサイト(PHP+MySQLのシステム)が、繁忙期になると1日1回くらいサーバが固まってしまう。
ビジネス面、精神衛生面ともに非常によろしくないので、できるだけ早く解消したい。

まだ問題解決まで至ってないが、まず調査のためにやった作業の履歴を残します。

現在の状況

・さくら専用サーバ1台で運用
・CentOS上に、Apache+PHP+MySQLでシステムを運営している
・5年前くらいにリリースされてから、アクセスは増えているが負荷対策はほとんどなし

topコマンドで稼働状態を見てみる

サーバにSSHでログインしてtopコマンドを入力すると、次のような数字が出てきました。

Ss 2014 07 15 17 22 08

ロードアベレージは0に近いほどよくて、1を超えると負荷が
さらに、CPUを最も消費するのが、mysqldと出てる。

時間のかかるSQL文をスロークエリログで探し出す

今回のシステムで、おそらくボトルネックとなっているのはmysqlである可能性が高い。

サーバにログインして

vi /etc/my.cnf

▼追記する
[mysqld]
・・・
long_query_time=1
log-slow-queries=/var/log/slow.log
log-queries-not-using-indexes

#logファイル作成
touch /var/log/slow.log
#ファイルの所有者変更
chown mysql:mysql /var/log/slow.log
#mysql再起動
/etc/init.d/mysqld restart

▼スロークエリログが正しく設定されているか確認

MySQLにログインして、次のコマンドを入力。

mysql> SHOW VARIABLES;

以下のとおり、有効になっていることが確認できます

log_slow_queries | ON

参考にしました
誰も教えてくれなかったMySQLの障害解析方法 – Qiita

▼この本の4章も参考にした。

[24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
安井 真伸 横川 和哉 ひろせ まさあき 伊藤 直也 田中 慎司 勝見 祐己
技術評論社
売り上げランキング: 6,915
スポンサーリンク

シェアする

フォローして更新を受け取る

スポンサーリンク