Jul 23 2007

SD 2007/07号のMySQL記事連動スクリプトを試してみた。

Published by d6rkaiz at 18:08 under tuning, MySQL

SoftwareDesign誌 2007/07号 特集 MySQL最前線・2007の中にあった、MySQL高速化/安定化のためのチューニングテクニック 記事連動スクリプト集
をやってみた。


鯖スペック。
CPU:AMD 3200+
Memory:1GB
OS:CentOS 4.5

先ずは上記ページのスクリプトをダウンロード。
上記ページに書かれている通りにDB作成してユーザ作成して、テストデータを読み込むまで順調に終了。
phpmyadminを入れているので、そちらでデータの内容確認。
うん、10万件。

で、記事を読みながら、Query Cache 検証をやってみた。
$ perl 01_qcache_bench.pl
出力結果(途中は省略)
### with qcache ###
>>> time elapsed: 6.543357
### SQL_NO_CACHE ###
>>> time elapsed: 6.650906

キャッシュが利いて無いようなので、ここから調査開始。

記事中にキャッシュについての確認方法があったので実施。
mysql> SHOW VARIABLES LIKE 'have_query%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_query_cache | YES |
+------------------+-------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'query_cache%';
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
5 rows in set (0.00 sec)

キャッシュサイズ0。
記事の中でも0になってるとキャッシュはOFFになり、メモリも確保されないとある。
スクリプト中で、キャッシュタイプON/OFFをしているようだが、サイズが0だから意味がないようで・・・

ということで、/etc/my.cnfを変更。以下を[mysqld]に追加。
query_cache_type=1
query_cache_size=4M

変更後、mysqlサーバを再起動して確認。

mysql> SHOW VARIABLES LIKE 'query_cache%';
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 4194304 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
5 rows in set (0.00 sec)

4M分確保されている事を確認。

そして、スクリプト実行。

相変わらず、途中は省略。
### with qcache ###
>>> time elapsed: 3.328956
### SQL_NO_CACHE ###
>>> time elapsed: 6.509299

利いてるようだ。
他のオプションについても記事を参考にチェックしていこうと思うけど、それはまた別の機会に。

ついでに、今後参考になりそうな、MySQLチューニング関連の記事。
What to tune in MySQL Server after installation
10 Tips for Optimizing MySQL Queries (That don’t suck)
5分でできる、MySQLのメモリ関係のチューニング!

Trackback URI | Comments RSS

Leave a Reply