KennyQiのPHPメモと息抜きブログ
KennyQi(ケニーチー)のブログへようこそ
Web制作 PHP開発のメモと息抜きブログ
ウェブ開発・デザイン・Nucleusのメモや旅日記などを綴っています
MySQLの接続数が多いときのチューニング
2009年11月02日 | Linux | Posted by: kennyqi
| 1284 PV
データベースを使ったウェブサイトで、
アクセス数が多いと、当然データベースへの接続数も多くなるかと思います。
MySQLだとデフォルトの最大接続数は100接続までOKのようですが、
接続を維持するキャッシュというのがあるようで、このサイズはデフォルトで0の模様。
また接続維持時間がデフォルトは8時間になっているようです。
ですので、アクセスがたくさんあると、
接続ができなくなるので、このような設定をしました。
とりあえず、MySQLにどれくらいの接続要求があったのか確認します。
[root@myhost ~]# mysqladmin -u root -p extended-status | egrep '(Max|Threads_)'
Enter password:
| Max_used_connections | 101 |
| Threads_cached | 0 |
| Threads_connected | 59 |
| Threads_created | 5225 |
| Threads_running | 43 |
[root@myhost ~]#
最大接続数はSUPER権限ユーザのために1つ用意されているそうで
Max_used_connectionsは101になっています。
それぞれの値については下記[参考サイト]のThinkITのリンクに書かれています。
とりあえず、こんな感じでチューニングしました。
まず、max_connections は最大接続数。これを100から500に変更。
[root@myhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2949
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 100 |
+-----------------+-------+
1 row in set (4.97 sec)
mysql> set global max_connections = 500;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 500 |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> exit
Bye
次に、キャッシュの大きさを変更
[root@myhost ~]# mysql -u root -p -e 'SET GLOBAL thread_cache_size = 10'
Enter password:
続いて、接続維持時間を8時間から2分(120秒)に変更
(もっと少なくてもいいと思う。ちなみに参考サイトでは15秒にしている)
[root@myhost ~]# mysql -u root -p -e 'SET GLOBAL wait_timeout = 120'
Enter password:
で、今回設定した値が反映されているか確認してみる。
キャッシュの大きさ
[root@myhost ~]# mysql -u root -p -e 'select @@thread_cache_size'
Enter password:
+---------------------+
| @@thread_cache_size |
+---------------------+
| 10 |
+---------------------+
接続維持時間
[root@myhost ~]# mysql -u root -p -e 'show variables like "wait_timeout"'
Enter password:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 120 |
+---------------+-------+
これだけしておけば、当分大丈夫じゃないかと思ってますが、
さていかに。。
[参考サイト] Thanks!
MySQLの最大接続数を変更する - 治療不可
MySQL接続数多すぎ問題 - のみまくし日記
はじめてのMySQLチューニング 第2回:負荷によるベンチマークを試す - ThinkIT
MySQL の wait_timeout と thread_cache_size の関係
余裕があれば、ThinkITで紹介されている「super-smack」という
MySQLの負荷監視ツールも入れてみたいかな。
アクセス数が多いと、当然データベースへの接続数も多くなるかと思います。
MySQLだとデフォルトの最大接続数は100接続までOKのようですが、
接続を維持するキャッシュというのがあるようで、このサイズはデフォルトで0の模様。
また接続維持時間がデフォルトは8時間になっているようです。
ですので、アクセスがたくさんあると、
接続ができなくなるので、このような設定をしました。
とりあえず、MySQLにどれくらいの接続要求があったのか確認します。
[root@myhost ~]# mysqladmin -u root -p extended-status | egrep '(Max|Threads_)'
Enter password:
| Max_used_connections | 101 |
| Threads_cached | 0 |
| Threads_connected | 59 |
| Threads_created | 5225 |
| Threads_running | 43 |
[root@myhost ~]#
最大接続数はSUPER権限ユーザのために1つ用意されているそうで
Max_used_connectionsは101になっています。
それぞれの値については下記[参考サイト]のThinkITのリンクに書かれています。
とりあえず、こんな感じでチューニングしました。
まず、max_connections は最大接続数。これを100から500に変更。
[root@myhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2949
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 100 |
+-----------------+-------+
1 row in set (4.97 sec)
mysql> set global max_connections = 500;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 500 |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> exit
Bye
次に、キャッシュの大きさを変更
[root@myhost ~]# mysql -u root -p -e 'SET GLOBAL thread_cache_size = 10'
Enter password:
続いて、接続維持時間を8時間から2分(120秒)に変更
(もっと少なくてもいいと思う。ちなみに参考サイトでは15秒にしている)
[root@myhost ~]# mysql -u root -p -e 'SET GLOBAL wait_timeout = 120'
Enter password:
で、今回設定した値が反映されているか確認してみる。
キャッシュの大きさ
[root@myhost ~]# mysql -u root -p -e 'select @@thread_cache_size'
Enter password:
+---------------------+
| @@thread_cache_size |
+---------------------+
| 10 |
+---------------------+
接続維持時間
[root@myhost ~]# mysql -u root -p -e 'show variables like "wait_timeout"'
Enter password:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 120 |
+---------------+-------+
これだけしておけば、当分大丈夫じゃないかと思ってますが、
さていかに。。
[参考サイト] Thanks!
MySQLの最大接続数を変更する - 治療不可
MySQL接続数多すぎ問題 - のみまくし日記
はじめてのMySQLチューニング 第2回:負荷によるベンチマークを試す - ThinkIT
MySQL の wait_timeout と thread_cache_size の関係
余裕があれば、ThinkITで紹介されている「super-smack」という
MySQLの負荷監視ツールも入れてみたいかな。
Search
Categories
Tags
New Comments
11/26 09:22:28
kennyqi
CPUの稼働率、 DBとWebサーバを分けたら落ち着きました^^;>>
11/05 02:37:46
kennyqi
この設定をしたら、サーバのCPU稼働率が100%になる時間が出...>>
08/10 11:46:27
kennyqi
2009年8月15日よりAmazonAPIは 電子署名による取得が必須と...>>
01/09 00:43:25
kennyqi
どうもありがとうございます。 写真はわけたほうがみやすい...>>
01/09 00:36:48
Motoo
早速旅行記おめでとうございます。 ただ、画像がおおきすぎ...>>
Archives
カテゴリ別記事リスト
2月, 2010
11月, 2009
9月, 2009
7月, 2009
6月, 2009
4月, 2009
3月, 2009
2月, 2009
1月, 2009
12月, 2008
11月, 2008
10月, 2008
9月, 2008
5月, 2008
3月, 2008
2月, 2008
1月, 2008
12月, 2007
Memo
» フリーWebテンプレート
» 携帯絵文字一覧
» 無料ロゴメーカー
Categories
Tags
UTF-8 | 文字化け | エラー | Softbank | CentOS | Nucleus | Google | 海外アプリ | MySQL | HDD | Postfix | CentOS4 | CentOS5 | メールサーバ | AU | Apache | テンプレート | PHP | SEO | 携帯
New Comments
11/26 09:22:28
kennyqi
CPUの稼働率、 DBとWebサーバを分けたら落ち着きました^^;>>
11/05 02:37:46
kennyqi
この設定をしたら、サーバのCPU稼働率が100%になる時間が出...>>
08/10 11:46:27
kennyqi
2009年8月15日よりAmazonAPIは 電子署名による取得が必須と...>>
01/09 00:43:25
kennyqi
どうもありがとうございます。 写真はわけたほうがみやすい...>>
01/09 00:36:48
Motoo
早速旅行記おめでとうございます。 ただ、画像がおおきすぎ...>>
Archives
カテゴリ別記事リスト
2月, 2010
11月, 2009
9月, 2009
7月, 2009
6月, 2009
4月, 2009
3月, 2009
2月, 2009
1月, 2009
12月, 2008
11月, 2008
10月, 2008
9月, 2008
5月, 2008
3月, 2008
2月, 2008
1月, 2008
12月, 2007
Memo
» フリーWebテンプレート
» 携帯絵文字一覧
» 無料ロゴメーカー