負荷時のmysql_connect()エラー - PHPプロ!Q&A掲示板
質問させていただきます。
CentOS上で、php(5.3.8)でmysql(14.14)を動かしているのですが
同時接続数が多くなりそうなサービスのため
abコマンドで負荷をかけたところ、負荷レベルによっては以下のWarningが出てしまいました。
- Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (11) in /var/www/html/test.php on line ***
--test.php--接続部分抜粋ソース(test.phpはほぼ以下の内容だけです)
- $link = mysql_connect($host, $user, $pass);
- $db_selected = mysql_select_db($dbname, $link);
- $q_insert = "INSERT INTO ".$table." (test_value1, test_value2) VALUES ";
- $q_insert .= '("test1","test2")';
- $result_insert = mysql_query($q_insert);
- echo "test - end";
例えば、同時接続50で複数回テストしたところ
- ab -n 500 -c 50 http://localhost/test.php
ところが、同時接続100でテストしたところ
- ab -n 1000 -c 100 http://localhost/test.php
Warning数は試行ごとにばらつきがあります(0〜数百)
<確認したところ>
*/var/lib/mysql/mysql.sock はあります。削除もできないようにパーミッションも変えてみました。
*php.ini のmysqlの接続数関係はデフォルト(-1)のままです。
*my.confの max_connectionsは1000にしました。
*httpd.confのMaxClients,ServerLimitは1000にしました。
*各設定後、httpd,mysqldはrestart済み。
*AWSを使っているので、よりスペックの高いインスタンスに載せ変えてみたのですが、結果変わらず、でした。
Warningが発生する原因はなんでしょうか?
心当たり等ありましたらお教えいただければと思います。
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。




ページのトップへ


変数名のtypoなど簡単なミスでも自分で気が付かないことはよくあります。どうしても解決できないときは、このように他の人に見てもらったり、コーヒーでも飲んでリフレッシュしてから再度トライしてみてください。