« χ2乗分布 及び逆χ2乗関数 | メイン | 印鑑登録 »

たまにmysqlにログインできない? max_user_connectionsを見てみよう

mysqlに限らず,同時にデータベースに接続できるユーザ数を制限できます.

linuxの場合,my.cnfに
 set-variable = max_user_connections=4
のような1行がある場合があります. これは単純に,コンソール/php-mysql経由問わず,同時に接続できる人数の上限を制限しています.

パスワードは合っているはずなのに,コンソールに入れたり入れなかったりする事態に遭遇しましたが,原因はこれでした.

私がここまで厳しい制限をかけているのは,過去にmysqldが何度もダウンする事態に遭遇した為です.

/var/log/messagesによると,

1. mysqlにクエリが殺到
2. mysqldが1.5GBの物理メモリと2.0GBのスワップ領域を食いつぶす
3. OOM Killerがmysqldをkillする

という流れだったようです.制限のない状態では,毎日のようにこれが繰り返されていましたが,適切に制限する事でとても安定するようになりました.

1つのデータベースで500MBあり,これに対して " * "のような処理を掛けたりすると,かなり負担になっているのかもしれません.WindowsXPと同程度のサイズです.

もともと研究のデモ実装目的で自宅サーバを用いて,何度となく役に立っては来ましたが,やはり時代はクラウド. 信頼性にも欠けますし,そろそろGAEとかにシフトさせようかと思います.

OOM Killer
OOM Killerは,仮想メモリ空間を使いすぎてOSやアプリケーションがmallocできない危険性が迫ったとき,OSの安定可動を守る為にヒューリスティックなアルゴリズムでアプリケーションやサービスデーモンを停止させる仕組みです. 

悪い子を刈り取るデスサイズというわけです.


ブログ「PHPに惚れました。」(Xephy氏)

http://d.hatena.ne.jp/Xephy/

PHPからTwitterのAPIを叩く方法等について紹介されています.
web系の方は実用的な情報が多いので,ぜひ見てみてください.

トラックバック

このエントリーのトラックバックURL:
http://www.ddhost.jp/mt/mt-tb.cgi/430

この一覧は、次のエントリーを参照しています: たまにmysqlにログインできない? max_user_connectionsを見てみよう:

» 前科 送信元 PHPに惚れました。
鯖管のブログでこっそり紹介されてたので反応。 http://www.ddhost.jp/blog/2010/08/mysql_max_user_conn... [詳しくはこちら]

About

2010年08月03日 01:00に投稿されたエントリーのページです。

ひとつ前の投稿は「χ2乗分布 及び逆χ2乗関数」です。

次の投稿は「印鑑登録」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。