web-dev-qa-db-ja.com

Mysqlはサーバーをハングアップします。これを回避する方法は?

Mysqlがすべてのリソースを消費するために、私のWebサイトが「ダウンする」ことがありますが、それでもhttpdプロセスの作成が止まらないと思います。それは可能ですか? Apacheを再起動すると、これらのプロセスが消え、mysqlプロセスによるCPU消費量がゆっくりと低下し、サイトが再びオンラインになります。

とにかくボトルネックを見つけるのに苦労しています。このサイトには多くのcronジョブ(phpスクリプト)があり、それぞれが合計実行時間を含むログを生成します。

そのため、最初に考えたのは、時間がかかるスクリプトを見つけようとすることでしたが、そのうちの1つだけでmysqlサーバーの速度が低下し、すべてのスクリプトの実行時間が長くなるため、それは不可能でした。

何かアドバイス?

ボトルネックを見つける方法はどこで学ぶことができますか?

注:私はCentOS、Apache 2、php 5.3、およびmysql5を使用しています

1
HappyDeveloper

遅いクエリログから始める必要があります: http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

Max_used_connectionsがmax_connectionsよりも高いかどうかを確認することもできます。

SHOW VARIABLES LIKE 'max\_connections';
SHOW STATUS LIKE 'max\_used\_connections';
1
xofer