2016-07-22 2 views
0

私はinnodbバッファプールに許可されているPerconaクラスタ5.6(mysql 5.6)と128Gメモリを実行しています。 しかし、ワークベンチはわずか14%が利用されていることを示しています。 バッファプールの使用量がそれほど少ない理由を誰にでも教えてもらえますか? ありがとうございます!MYSQL 5.6 Innodbバッファプールは128Gのうち14%のみ使用されています

この私のInnoDBの設定である

innodb_stats_sample_pages=142 
innodb_stats_persistent_sample_pages=142 
innodb_stats_transient_sample_pages=142 
innodb_open_files=4000 
innodb_additional_mem_pool_size = 16M 
innodb_buffer_pool_size = 128G 
innodb_buffer_pool_instances = 8 
innodb_data_file_path = ibdata1:10M:autoextend 
innodb_write_io_threads = 32 
innodb_read_io_threads = 32 
innodb_thread_concurrency = 16 
innodb_flush_log_at_trx_commit = 2 
innodb_log_buffer_size =256M 
innodb_log_file_size = 256M 
innodb_log_files_in_group = 3 
innodb_max_dirty_pages_pct = 90 
innodb_lock_wait_timeout = 120 
innodb_buffer_pool_load_at_startup = ON 
innodb_file_format = Barracuda 
innodb_file_format_max = Barracuda 
query_cache_type = 0 
+0

あなたのデータベースサイズは? – ffeast

+0

データ量はバッファプールの14%です。何が必要なのか、何が必要ないのなら、MySQLはすべてを使用すると思ったのですか? –

答えて

0

ケース1:あなたのデータベース(データ+インデックス)は18ギガバイト未満です。 "Data_length"と "Index_length"( "Data_free"を無視)を見つけるには、SHOW TABLE STATUS(または、information_schemaを含むより複雑なクエリ)を実行します。

ケース2:データが18GBを超えていますが、「ワーキングセット」がそれより小さいです。

どちらの場合でも、心配する必要はありません。

しかし、どれくらいのRAMがありますか? 128GはRAMよりも小さくする必要があります。おそらくRAMの80%を超えることはありません。

追加する場合がありますSHOW GLOBAL STATUS LIKE 'Innodb%';

+0

データベースのサイズは約90Gで、サーバー上の合計RAMは256Gです。私はそれがゆっくりピックアップしていると思う。 5時間稼働後は最大22%になります。なぜデータベース全体がバッファにキャッシュされていないのか不思議です。それは照会されたものだけをバッファリングしていますか? –

+0

多くの回答:「キャッシュ」の「定義」によって、ブロックは必要に応じて持ち込まれます。突然起動時に90GBをロードすると時間がかかる! 1TBのデータがある場合は、128GBのデータを事前にロードしますか?等 –

+1

必要に応じて16KBのブロックをロードしています。それがいっぱいになると(それはあなたの番号に基づいていないでしょう)、それはおおよそ "最近使用されていない"順序でブロックを突き破ります。 –

関連する問題