|
||||||||||||||
| 前のページ 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
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 |
||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||

