web-dev-qa-db-ja.com

my.cnfの変数にどのメモリを与える必要がありますか?

MySQLサーバーのインストールは非常に簡単です。ただし、インストール後のサーバーの構成は、DBAにとって重要なタスクです。

2 GBのRAMおよび250GBのディスク容量がある場合、MySQLサーバーを適切に実行できるようにチューニングするにはどうすればよいですか?

InnoDBエンジンの適切な構成も必要です。

6
Abdul Manaf

以下は、InnoDBに対する私の推奨事項の一部です。私の経験では、キャッシュに保持できるデータが多いほど、システムがディスクIOの使用に費やす時間が少なくなるため、バッファープールサイズが最も重要です。

http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html これは、データとインデックスがキャッシュされるバッファプールです

innodb_buffer_pool_size=(In Mb, 80% of available RAM)、2GBの場合、1536を入れます。

システムを注意深く監視し、スワッピングが発生し始めたらこの変数を減らす準備をしてください。

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_additional_mem_pool_size これはメタデータが格納される場所です。テーブルがたくさんある場合は、これを増やすと便利です。

innodb_additional_mem_pool_size=16M

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_data_file_path ここでは、ibdataファイルの場所を定義できます。別のコントローラーを使用する別のディスクにibdataファイルを配置できる場合は、競合が減少します。このオプションには注意してください。この変数を使用する前に、この変数をよく読んでください。 ibdataファイルに29Gを超える容量が必要な場合、MySQLは処理を停止し、スペースが追加されるのを待ちます。

innodb_data_file_path = ibdata1:128M:autoextend:max:29G

これは、ibdataファイルの増加量を管理します。したがって、10MBのような非常に小さい数値を入力すると、多くの挿入があった場合、innodbはibdataファイルを増やすのに多くの時間を費やすことになります。

innodb_autoextend_increment = 128M

トランザクションログを配置する場所。別のコントローラーを使用してトランザクションログを別のディスクに配置できる場合、これにより競合も軽減されます。

innodb_log_group_home_dir = /tlog/

ログファイルのサイズとは

innodb_log_file_size = 500M

バッファー・プール・サイズの25%。ディスクに書き込む必要なしに大きなトランザクションを実行できます。

innodb_log_buffer_size = 384M

一時ディレクトリの移動先も​​定義します。 MySQLが一時ファイルを作成する場所を定義します。競合を減らすためのさらに別の方法。

通常、サーバー上の最大のテーブルのインデックスを再作成できるように十分なスペースを残します。

tmpdir=/opt/tmp/

また、エラーログは、問題が発生してトラブルシューティングが必要になった場合に役立ちます。

log-error=/var/log/mysql.err

また、4つ以上のCPUがある場合、これらの変数を増やすことができます。innodb_thread_concurrency = 8 innodb_file_io_threads = 4

これはinnodbとは関係ありません。 innodbとは何の関係もない他の変数を試すことができます。一番下に追加しましたが、テストに使用するサーバーから直接取得しました。単にコピーして貼り付けることは避けてください。使用しているバージョンに基づいてMySQLのドキュメントを読むことは、正しい選択を行うための最良の方法です。

# Fine Tunning
key_buffer              = 512M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
join_buffer_size        = 64M
sort_buffer_size        = 16M
myisam_max_sort_file_size = 1024M
tmp_table_size = 256M
max_heap_table_size = 257M
myisam_sort_buffer_size=1024M

table_cache            = 1000
thread_concurrency     = 8
# * Query Cache Configuration
#
query_cache_limit       = 16M
query_cache_size        = 16M


skip-name-resolve
8
Craig Efrein