TOPサーバ構築・運用> 適切なtable_cacheの設定値を知るために
MySQLチューニング
はじめての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の設定値を知るために