MySQL Benchmark-002 環境構築その2 10Gb NIC導入
この MySQL ベンチマーク
シリーズはMySQL-Benchmarkタグから一覧できます。
最初の方で環境構築をしていて、その環境で実験しています。
前回1Gbのネットワーク帯域がボトルネックになってしまうことがわかったので、10Gbの環境を作っていく
導入機器
NIC
コンシューマ向け(?)のNICでどれくらいの差が出るのかわからないが、今回は安めの10Gb対応のNICを探してXG-C 100Cにした。
Switch
今後のことを考えると全ポート10Gb対応のスイッチが欲しかったけど、結構な値段になるので、ベンチマークする2台だけ10GbでつなげればOK
Install
公式のドライバーを落としてインストールしようとしてもサポートしているカーネルのバージョンが低すぎた。 Aquantiaのチップ用のドライバーはGitHubにあるのでこれをcloneしてinstallする
apt install linux-headers-`uname -r` build-essential gawk dkms git clone https://github.com/Aquantia/AQtion cd AQtion make make install
iperfでベンチマークして10Gbで通信できていることを確認
sysbench比較
前回と同じワークロードで確認 (on_memoryからのoltp_read_only)
1Gbでの結果(threads = 10~50)
Network帯域がサチっているのが分かる
10Gbでの結果(threads = 10~50)
CPUが100%になってNetwork帯域には余裕ができた
MTUを増やす
せっかくなので、MTUを1500から9000にして実験
トラフィック量が10%弱, CPU利用率が1%弱減った。 当然packetに次第だろうけど、せっかく10Gbなので今後もMTUは9000にする予定
今後のMySQLのベンチマークでNetworkがボトルネックになることはなさそうなのと、あまり知識もないので、これで完了。
次回はどのSSDを使うか決定します。