tom__bo’s Blog

MySQL!! MySQL!! @tom__bo

MySQL Benchmark-002 環境構築その2 10Gb NIC導入

この MySQL ベンチマーク シリーズはMySQL-Benchmarkタグから一覧できます。
最初の方で環境構築をしていて、その環境で実験しています。


前回1Gbのネットワーク帯域がボトルネックになってしまうことがわかったので、10Gbの環境を作っていく

導入機器

f:id:tom__bo:20201115002454p:plain

NIC

XG-C 100C

コンシューマ向け(?)のNICでどれくらいの差が出るのかわからないが、今回は安めの10Gb対応のNICを探してXG-C 100Cにした。

Switch

NETGEARのGS110MX-100JPS

今後のことを考えると全ポート10Gb対応のスイッチが欲しかったけど、結構な値段になるので、ベンチマークする2台だけ10GbでつなげればOK

Install

公式のドライバーを落としてインストールしようとしてもサポートしているカーネルのバージョンが低すぎた。 Aquantiaのチップ用のドライバーはGitHubにあるのでこれをcloneしてinstallする

github.com

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)

f:id:tom__bo:20201115002551p:plain

Network帯域がサチっているのが分かる

10Gbでの結果(threads = 10~50)

f:id:tom__bo:20201115002610p:plain

CPUが100%になってNetwork帯域には余裕ができた

MTUを増やす

せっかくなので、MTUを1500から9000にして実験

f:id:tom__bo:20201115002625p:plain

トラフィック量が10%弱, CPU利用率が1%弱減った。 当然packetに次第だろうけど、せっかく10Gbなので今後もMTUは9000にする予定

今後のMySQLベンチマークでNetworkがボトルネックになることはなさそうなのと、あまり知識もないので、これで完了。

次回はどのSSDを使うか決定します。