2016-06-16 5 views
3

ソーシャルサイエンス研究プロジェクトでは、8 GBのメモリを搭載したLinux専用サーバーでMySQL(5.5)を使用しています。データは約3000万レコードで構成され、約4GBのMyISAMソーステーブルが作成されます(MyISAMはデータが安定しており、トランザクションは役に立ちません)。私の質問はこれです:どうすればメモリが不要なボトルネックになるのを防ぐことができますか?

メモリの約20%しか使用されていませんが、多くの変数が相互に依存しているため、my.ini設定の適切なバランスを見つけることは困難です。 MySQLが可能な限り多くのメモリを使用することを許可するにはどうしたらいいですか?MySQL分析サーバーのメモリ使用量を最大限にする

現在の設定:

[mysqld] 
max_connections = 3 
performance_schema=on 
default-storage-engine=MYISAM 
local-infile=1 

myisam_sort_buffer_size = 2048M 

key_buffer_size = 2048M 
tmp_table_size = 2048M 
max_heap_table_size = 2048M 

sort_buffer_size = 128M 
read_buffer_size = 256M 
read_rnd_buffer_size = 128M 
join_buffer_size = 512M 
thread_stack = 256KB 

query_cache_size = 64M 
query_cache_limit = 32M 
table_open_cache= 256 
table_definition_cache = 512 

myisam_max_sort_file_size = 75G 

答えて

-1

あなたの最善の策は、それが実行され、しばらくの間使用された後、データベース上MySQL Tunerを実行することです。 SOの誰もあなたのデータベースと使用パターンの形を知らなくても、あなたのメモリ使用量を最適化するための関連情報をあなたに与えることができます。 MySQL Tunerはこれを自動化します。

+0

私は、MySQL Tunerと[tuning-primer](https://launchpad.net/mysql-tuning-primer)の両方を使用して成功しました。問題は、そのようなツールがかなりの数の接続を持つトランザクションサーバーに対応しているため、この状況では適用されないメモリ使用に関する警告につながることです。 –

関連する問題