web-dev-qa-db-ja.com

MySQL 5.5-ハイエンドシステムでの正しいwrite [read] _io_threadsの決定?

具体的には、デュアルCPU 32コア-128RAM-RAID 10 SSD。 Ubuntu 64サーバー。

Innodbの負荷が高い-毎秒約2000以上のクエリ。重い読み取りと書き込み。

現在、デフォルトのwrite_io_threads 4で実行しています。

サーバーの能力を「弱体化」していますか? max write_io_threads = 64およびread_io_threads = 64で実行しても安全ですか?

この数はどのように決定されますか?

7
Tom Geee

2012年3月15日、私はこの質問に答えました: MySql Recommended hardware

私の回答では、雇用主のWebホスティング会社に今も残っているクライアントについて言及しました。現在、循環レプリケーションで3つのDBサーバーを実行しています。各DBサーバーには以下が含まれます。

  • MySQL 5.5.9
  • 192 GBのRAM
  • 162 GBのInnoDBバッファープール
  • デュアルヘキサコア(そう、12 CPU)
  • 1.8TBディスクボリューム
  • 528のマルチテナントデータベース
  • 500 GBのInnoDBデータ
  • innodb_file_per_table 有効

私はそれらを設定しています

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

結論:あなたはコアと128G RAMを手に入れましたか?何を待ってるの?クランクアップして楽しんでください。私のクライアントは、2011年3月以降、これらのハードウェアに対するこれらの設定にほとんど満足していません。

警告

冗談はさておき、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の新しい設定の設定に関する他の投稿を参照してください。

2013-01-18 21:52 EDT更新

あなたは角で雄牛を取り、いくつかのベンチマークを設定する必要があります。歴史的に遡ってみましょう。 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に関するパフォーマンス中心のすべてがあり、読み取り、選択、およびベンチマークを行うことができます。

6
RolandoMySQLDBA