具体的には、デュアルCPU 32コア-128RAM-RAID 10 SSD。 Ubuntu 64サーバー。
Innodbの負荷が高い-毎秒約2000以上のクエリ。重い読み取りと書き込み。
現在、デフォルトのwrite_io_threads 4で実行しています。
サーバーの能力を「弱体化」していますか? max write_io_threads = 64およびread_io_threads = 64で実行しても安全ですか?
この数はどのように決定されますか?
2012年3月15日、私はこの質問に答えました: MySql Recommended hardware 。
私の回答では、雇用主のWebホスティング会社に今も残っているクライアントについて言及しました。現在、循環レプリケーションで3つのDBサーバーを実行しています。各DBサーバーには以下が含まれます。
私はそれらを設定しています
innodb_read_io_threads = 64
innodb_write_io_threads = 64
innodb_thread_concurrency = 0
innodb_buffer_pool_size = 162G
innodb_buffer_pool_instances = 2
innodb_log_file_size = 384M
冗談はさておき、VM(VMWare、AWS、その他のクラウドベースのMySQLインスタンス)またはコモディティハードウェア。ただし、ベアメタルの火力が非常に高いため、MySQL 5.5より前のバージョンのMySQLはシングルスレッドのInnoDBで動作するため、これらの設定を利用する必要があります。 MySQL 5.1を使用している場合は、MySQL 5.1.38以降のInnoDBプラグインをインストールして設定する必要があります。すべてのPercona Server 5.1バイナリには、これらがすでに配置されています。 MySQL 5.5を使用しているため、これらの設定はネイティブにインストールされ、多くの点でテストされています。新しいInnoDB設定を調整する責任を負うだけです。
InnoDBの新しい設定の設定に関する他の投稿を参照してください。
Jan 11, 2012
: 16コア12 GB RAMサーバーMySql構成-my.cnfOct 05, 2011
: 一部の新しいMySQLバージョンではクエリが長時間実行されますSep 20, 2011
: マルチコアとMySQLパフォーマンスSep 12, 2011
: MySQLで複数のコアを使用することは可能ですか?May 26, 2011
: シングルスレッドデータベースとマルチスレッドデータベースのパフォーマンスについてNov 24, 2011
: mysql 5.5が5.1より遅い理由(linux、mysqlslapを使用)あなたは角で雄牛を取り、いくつかのベンチマークを設定する必要があります。歴史的に遡ってみましょう。 innodb_read_io_threadsおよびinnodb_writes_io_threadsは、MySQL 5.0または5.1には付属していませんでした。誰かがプラグインを作成し、MySQL 5.1.38で使用できるようにしました。デフォルトは4でした。また、Percona Serverはこれらの機能をMySQL 5.1の初期にデフォルトの8で実装していることにも気付きました。ただし、この比較は通常、InnoDBを使用して行われます。したがって、もちろん、スレッド数が2倍のPercona Serverの方が適しています。
パフォーマンスを向上させるこの保守的な方法(Perconaへのアップグレード)を考えると、チューニングしない限り、InnoDBがどれほど良いか、悪いか、または醜いかがわかりません。覚えておいてください 2011年11月24日の投稿 。 MySQLの複数のバージョンがベンチマークされ、場合によっては MySQL 4.1のInnoDBがシングルスレッド環境で5.xよりもパフォーマンスが優れていました =。同じレベルの競争条件が与えられています。
好みに合わせてスケールを傾けるには、InnoDBを調整する必要があります。複数のコアを有効にするために、InnoDBが提供している設定について読む必要があります。すべての環境が、クライアントのデュアルヘキサコアサーバーやデュアルヘキサデカコアのようなものではありません。
私があなたに良い出発点を与えなければならなかったら、それはmysqlperformanceblog.com
。 mysqlに関するパフォーマンス中心のすべてがあり、読み取り、選択、およびベンチマークを行うことができます。