私はOpenVZコンテナーにデータベースサーバー(MySQL)をセットアップしようとしていますが、それに割り当てる必要のあるCPUの数を考えていました。ベンチマークすることにしました。2つのOS / MySQLディストリビューションを比較し、1、2、3、4 CPUでどのように動作するかをテストしました。
最初のソフトウェア構成は次のとおりです。
- CentOSリリース6.5(最終)
- mysql Ver 14.14 Distrib 5.1.71、readline 5.1を使用するredhat-linux-gnu(x86_64)用
二番目:
- Debian GNU / Linux 7 \ n \ l
- mysql Ver 14.14 Distrib 5.5.31、debian-linux-gnu(x86_64)、readline 6.2使用
両方が同じカーネルで実行されていました-2.6.32-openvz-042stab083.2-amd64#1 SMP Fri Nov 8 17:59:25 MSK 2013 x86_64 GNU / Linux。
すべてのソフトウェアはパッケージからインストールされ、カスタム構成の微調整なしですぐに使用できます。
ハードウェア:6GB RAM、1-4 CPU 3.5 GHz。
ベンチマークには、sysbenchを次のシナリオで使用しました。
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
どちらの場合も、テーブルのエンジンはInnoDBでした。
私が見ていた出力は、1秒あたりのトランザクション数でした。結果は非常に安定しており、エラーは1%未満でした。
CentOS / MySQL5.1の結果は期待どおりでしたが、Debian / MySQL5.5の結果は非常に奇妙でした。
ご覧のとおり、DebianのMySQL5.5は複数のCPUを適切に利用できません。2つのCPUを使用した場合のパフォーマンスは1を使用した場合よりも高くなりますが、CentOS / MySQL5.1よりも明らかに低くなります。さらに、CPUを2の上にさらに追加すると、それは本当に奇妙です。
誰かがそこで何が起こっているのか説明できますか?CPUを追加するとMySQLのパフォーマンスが低下するのはなぜですか?