TOP
>
サーバ構築・運用
> max_connectionsとは
はじめてのMySQLチューニング
第2回:負荷によるベンチマークを試す
著者:
アールワークス 田中 靖之
2007/7/9
1
2
3
次のページ
max_connectionsとは
max_connectionsとは、「MySQLサーバが許可する、MySQLクライアントの同時接続最大数」です。この値は、MySQLクライアントから無制限にコネクションが張られることによってMySQLサーバの負荷が増大し、最終的にはサービスが停止してしまう…といった事態を防ぐために、同時接続してよいMySQLクライアントの数を制限することが目的です。
さらにもう少しパフォーマンスに注目していい換えれば、MySQLサーバがもっとも良い効率で稼動できる範囲にMySQLクライアントの接続数を制限する、ということになります。
あなたの環境ではいくつに設定されているでしょうか。パラメータ設定一覧を取得するコマンドは「
第1回:定量的な情報収集のススメ
」で説明した通りですので、以下のように実行してみましょう。
図1:パラメータ設定一覧を取得
(画像をクリックすると別ウィンドウに拡大図を表示します)
特に意識して設定を変更していなければ、上記のようにデフォルト値である100が表示されるはずです。
なお、実際に接続可能な数は「max_connections+1」で、SUPER権限を持つユーザ(rootなど)用に+1の接続が予約されています。そうすることにより、max_connectionsに達してしまった場合でも、管理者は優先的にMySQLサーバへ接続して原因調査ができる仕組みになっているのです。
現在の接続数確認方法
先ほどの説明でmax_connectionsの設定値はわかりました。それでは今、どれくらいの数のMySQLクライアントが接続しているでしょうか。これについても、前回お話したように「mysqladmin」コマンドで取得可能です。
図2:mysqladminコマンドを実行
(画像をクリックすると別ウィンドウに拡大図を表示します)
Threads_cachedについては別途チューニング項目として取り上げますので後に譲るとして、その他のパラメータは以下の意味を持ちます。
パラメータ
意味
Max_used_connections
これまでに記録された同時接続数の最大値
Threads_connected
現在開いている接続の数
Threads_created
接続を処理するために生成されたスレッド数
Threads_running
スリープ状態になっていないスレッド数
表1:各パラメータの意味
Max_used_connectionsはともかく、「スレッドって何?」という疑問が湧くかもしれません。ここでは単純化のために「スレッド数=MySQLクライアントの接続数」と理解してください。
例えば図2の取得した情報を読み解くと「現在接続しているMySQLクライアントは2で、そのうち処理を実行中のものは1。これまでに接続された総数は12で、そのうち同時に接続された最大値は3である」となります。
1
2
3
次のページ
著者プロフィール
株式会社アールワークス 田中 靖之
ネットワークインテグレーション部
主にWebサービス系のシステム運用監視を担当するネットワークインテグレーション部に所属。システム改善やチューニングを顧客と共に考える姿勢を大事にしている。
INDEX
第2回:負荷によるベンチマークを試す
max_connectionsとは
ベンチマークプログラム「Super Smack」
設定ファイルの作成