TOP
>
サーバ構築・運用
> 適切なtable_cacheの設定値を知るために
はじめてのMySQLチューニング
第4回:ベンチマークツールを使った負荷テスト
著者:
アールワークス 田中 靖之
2007/7/23
前のページ
1
2
3
適切なtable_cacheの設定値を知るために
今回のテストではtable_cacheは211あれば良いということがわかりましたが、thread_cacheの時と同様、今回用意した環境はあくまでテスト環境であり、実環境とはかなり異なります。
今回はtestデータベース1で、しかもその中にテーブルが1つしかない状態でした。また、クエリも単純なものなのでjoinを使用する環境ではtable_cacheの値も異なってきます。
実環境で適切なtable_cacheの設定値を知るには、Open_tablesとOpened_tablesの値の変化を知る必要があります。Open_tablesがtable_cacheと同じ値になっていて、Opened_tablesが増加している場合、table_cacheを大きくする必要があるでしょう。そしてOpen_tablesがtable_cacheより小さく、Opened_tablesが増加しない状態になれば、それが「実環境でのtable_cacheの適切な値である」ということになります。
オープンできるファイル数の上限値に注意
table_cacheの適切な値を決めるにあたって、もう1つ重要な点があります。それはOSで決められている「オープンできるファイルの上限値」で、table_cacheはこれより大きな値に設定してしまうと「これ以上ファイルを開けない」というエラーが発生してしまいます。
今回のテストで使用しているCentOS 5.0の場合、1ユーザが開くことのできるファイル(正確にはファイルディスクリプタ)の最大値は1024に設定されています。これはMySQL実行ユーザがmysqlというユーザ名の場合を例にすると、以下のコマンドで確認できます。
# su mysql
$ ulimit -a
mysqlではopen_files_limitというチューニングパラメータでこの上限を上書きできますが、これはmysqld_safeをOSのrootユーザで実行した場合にのみ有効です。ただしCentOSにRPM形式でMySQLをインストールした場合の起動スクリプト「/etc/init.d/mysql」ならば、起動ユーザがrootで実行ユーザがmysqlというように自動的に設定されますので、/etc/my.cnfでopen_files_limitを1024以上に設定すれば変更可能です。
前のページ
1
2
3
著者プロフィール
株式会社アールワークス 田中 靖之
ネットワークインテグレーション部
主にWebサービス系のシステム運用監視を担当するネットワークインテグレーション部に所属。システム改善やチューニングを顧客と共に考える姿勢を大事にしている。
INDEX
第4回:ベンチマークツールを使った負荷テスト
table_cacheとは
デフォルト値での性能測定
適切なtable_cacheの設定値を知るために