MySqlシステム構成最適化
1878 ワード
OS構成の最適化
ネットワーク側の構成は、
オープンファイル数の制限は、
それ以外はMySQLサーバーでiptables、selinuxなどのファイアウォールソフトをオフにしたほうがいいです(ハードウェアファイアウォールが使えます)
MySQLプロファイル
MySQLがプロファイルを検索する順序は、次の方法で
注:複数の場所にプロファイルが存在する場合、後の場所は前の場所を上書きします.
共通パラメータの説明:
innodb_buffer_pool_size:innodbのバッファプールを構成するために非常に重要なパラメータです.データベースにinnodbテーブルがある場合、推奨構成量は総メモリの75%です.
innodb_buffer_pool_instances:バッファの数を制御できます.デフォルトではバッファが1つしかありません.
innodb_log_buffer_size:innoddb logバッファのサイズは、ログが最長で毎秒リフレッシュされるため、一般的にはあまり大きくありません
innodb_flush_log_at_trx_commit:キーパラメータ(データがどのくらいディスクにリフレッシュされるかを決定します.1:コミットごとに0をリフレッシュします.1秒ごとにログをディスクにリフレッシュします.2:コミットごとにバッファにリフレッシュします.1秒ごとにバッファをディスクにリフレッシュします.)innodbのIO効率に最も影響します.デフォルト値は1で、0,1,2の3つの値を取ることができます.一般的には2に設定することをお勧めします.ただし、データのセキュリティ要件が高い場合はデフォルト値1を使用します.
innodb_read_io_threads、innodb_write_io_threads:innodb読み書きのIOプロセス数を決定し、デフォルトは4
innodb_file_per_table:キーパラメータで、innodbの各テーブルが独立した表領域を使用することを制御します.デフォルトはoffです.つまり、すべてのテーブルが共有表領域に構築されます.同時書き込みの場合は効率が低く、共有空間の中には単独で収縮することはできません.大きなテーブルを削除すると、単独で収縮することはできません.すべてのテーブルが導出されてからインポートしてこそ、共有空間の収縮を実現することができます.
innodb_stats_on_Metadata:MySQLがinnodbテーブルの統計をどのようにリフレッシュするかを決定します(オプティマイザがテーブルのインデックスをどのように使用するかは統計を借りる必要があります).
サードパーティ構成ツール
percona configuration wizard:
参考サイト:性能最適化のMySQL最適化
ネットワーク側の構成は、
/etc/sysctl.conf
ファイルを変更する必要があります.# tcp
net.ipv4.tcp_max_syn_backlog = 65535
# ,
net.ipv4.tcp_max_tw_buckets = 8000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
オープンファイル数の制限は、
ulimit -a
を使用してディレクトリの各制限を表示することができ、/etc/security/limits.conf
ファイルを変更することができ、以下の内容を追加してオープンファイル数の制限を変更することができます.*soft nofile 65535
*hard nofile 65535
それ以外はMySQLサーバーでiptables、selinuxなどのファイアウォールソフトをオフにしたほうがいいです(ハードウェアファイアウォールが使えます)
MySQLプロファイル
MySQLがプロファイルを検索する順序は、次の方法で
/usr/sbin/mysqld --verbose --help | grep -A 1 'Default options'
を取得できます.注:複数の場所にプロファイルが存在する場合、後の場所は前の場所を上書きします.
共通パラメータの説明:
innodb_buffer_pool_size:innodbのバッファプールを構成するために非常に重要なパラメータです.データベースにinnodbテーブルがある場合、推奨構成量は総メモリの75%です.
innodb_buffer_pool_instances:バッファの数を制御できます.デフォルトではバッファが1つしかありません.
innodb_log_buffer_size:innoddb logバッファのサイズは、ログが最長で毎秒リフレッシュされるため、一般的にはあまり大きくありません
innodb_flush_log_at_trx_commit:キーパラメータ(データがどのくらいディスクにリフレッシュされるかを決定します.1:コミットごとに0をリフレッシュします.1秒ごとにログをディスクにリフレッシュします.2:コミットごとにバッファにリフレッシュします.1秒ごとにバッファをディスクにリフレッシュします.)innodbのIO効率に最も影響します.デフォルト値は1で、0,1,2の3つの値を取ることができます.一般的には2に設定することをお勧めします.ただし、データのセキュリティ要件が高い場合はデフォルト値1を使用します.
innodb_read_io_threads、innodb_write_io_threads:innodb読み書きのIOプロセス数を決定し、デフォルトは4
innodb_file_per_table:キーパラメータで、innodbの各テーブルが独立した表領域を使用することを制御します.デフォルトはoffです.つまり、すべてのテーブルが共有表領域に構築されます.同時書き込みの場合は効率が低く、共有空間の中には単独で収縮することはできません.大きなテーブルを削除すると、単独で収縮することはできません.すべてのテーブルが導出されてからインポートしてこそ、共有空間の収縮を実現することができます.
innodb_stats_on_Metadata:MySQLがinnodbテーブルの統計をどのようにリフレッシュするかを決定します(オプティマイザがテーブルのインデックスをどのように使用するかは統計を借りる必要があります).
サードパーティ構成ツール
percona configuration wizard:
https://tools.percona.com/wizard
参考サイト: