ESXiプラットフォームで実行されているUbuntu10.10サーバーにinnodbがあります。私は専用の8CPU、32ギガのRAM、およびRAID 5HPに保存されたファイルを持っていますSAN of SAS 10krpmディスク。FASTクエリを期待しています!ただし、select count( 'x')は7,500万行で45秒かかります!そこで、私はこの獣の調整を掘り下げました:
1)私の設定のいくつかは、mysqlが「不明な変数」エラーで爆破する原因になります。これらは:
innodb_file_format = barracuda
innodb_read_io_threads = 6
innodb_write_io_threads = 6
innodb_io_capacity = 1000
2)mysqlをクラッシュさせないが、おそらく最適化されていない残りの設定。
skip_name_resolve
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_buffer_pool_size = 24G
innodb_log_files_size = 1G
innodb_log_buffer_size = 8M
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_comit = 1
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 32
query_cache_limit = 1M
query_cache_size = 0
これらの設定で推奨する追加の調整はありますか?不足している追加の設定はありますか?
ご支援ありがとうございます!
innodb_file_format = barracuda
innodb_read_io_threads = 6
innodb_write_io_threads = 6
innodb_io_capacity = 1000
これらの設定はMySQL5.5固有です。 MySQL 5.0 /5.1で記述されたデータに対してMySQL5.5を使用している場合は、古いバージョンのMySQLを実行し、すべてをmysqldumpして、データをmysqlに再度リロードする必要があります。バラクーダ形式は、別のInnoDBファイル形式です。以前のバージョンのMySQLおよびInnoDBから移行する必要があります。 しばらく前にこれに何か書いた 。
ファイル形式を再確認するには、「SHOW VARIABLES LIKE'innodb_file_format ';」を実行します。アンテロープが見えるはずです。
この問題を解決したら、他の変数をこれにクランクアップします
innodb_read_io_threads = 64
innodb_write_io_threads = 64
innodb_io_capacity = 20000
結局のところ、8つのCPUがあります。
MyISAMチューニングオプション
InnoDBチューニングオプション
InnoDB固有のチューニング
InnoDBおよびMyISAMキャッシュ構成予測