CPUを追加するとMySQL 5.5(Debian)のパフォーマンスが低下する


8

私は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のパフォーマンスが低下するのはなぜですか?


ここでリソースの競合が発生している可能性があります-このホストで実行されている他の多くの仮想サーバー/コンテナーがありますか?Debianインストールのベンチマーク中に物理プロセッサに負荷がかかっていた可能性はありますか?
ブラックライト

結果は非常に再現可能でした。これは私自身のホームベアメタルサーバーであり、テスト中は何もロードしませんでした。
Greendrake 2013

もちろん、サーバー上には他にもいくつかの仮想マシンがありましたが、それらはアイドル状態でした。
Greendrake 2013

カーネルは言ったでしょうが、同じです...両方のシステムで同じバージョンを使用してみてください。
miniBill 2014年

1つの異なる、debianはeglibc en.wikipedia.org/wiki/Embedded_GLIBCを使用します。おそらくこれは問題ではありません
c4f4t0r '12

回答:



1

さて、あなたが実行しているアーキテクチャについて最初に何かを知らなくても、それは本当に主要な質問です。しかし、CPU容量、特に複数のマルチコアプロセッサをサポートするアーキテクチャを追加すると、バスのスループットに指数関数的なヒットがあります。展開されたバス帯域幅制限全体での割り込みサイクルへの影響...パフォーマンスのあらゆるイベントで...アーキテクチャがボトルネックのI / Oまたはサイクルあたりのビット数であることを理解し、複数のCPUには複数のスレッドが必要であることを再度念頭に置いてください..したがって、FSBの速度に関係なく...ハードウェアが64ビットしかない場合、物理的な電気接続は、同じクロックサイクル内の多くのコア間でこの制限を共有する必要があります...ここで立ち止まって、64ビットから256ビットのシステムボードにアップグレードすることのプラスの影響を考えてみます。フルチルトでのスループットは、スレッド化/操作のオーバーヘッドの維持にx1が費やされるため、x3倍向上します。単一のプロセッサー/オペレーターのみが必要な場合のオーバーヘッドに関する不快な現実..それはバランスをとる行為、より具体的には適切なコースに適切な馬だと思います.. Steveo Reedo nextfriend@live.co.uk私はそれがバランスをとる行為、より具体的には正しいコースにふさわしい馬であると思います。SteveoReedo nextfriend@live.co.uk私はそれがバランスをとる行為、より具体的には正しいコースにふさわしい馬であると思います。SteveoReedo nextfriend@live.co.uk


0

CPUを追加すると、より多くの操作が並行して実行されます。RAMの数を増やさなかった場合、特にテストしているソフトウェアのより太いバージョン(ほとんどの場合より太い)を使用している場合は、スワップが発生する可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.