Bare Metal Solution のネットワーク パフォーマンスの問題に対するチェックリスト
このページでは、ネットワーク パフォーマンスの問題のトラブルシューティングのチェックリストについて説明します。次のフローチャートは、これらの問題のトラブルシューティングを行う際のパスを示しています。
速度テスト(スループット テスト)を行う
踏み台ホストと Bare Metal Solution サーバー間に帯域幅の問題がある場合は、Compute Engine VM またはアプリケーション サーバーと Bare Metal Solution サーバー間で速度テストを行います。
クロスリージョン テストでは、スループットが低下し、想定どおりのスループット値が得られない可能性があるため、ソースサーバーが Bare Metal Solution サーバーと同じリージョンに存在するようにしてください。
もう 1 つ確認すべき重要な点は、Compute Engine のマシンタイプ ページで説明されているように、ソースマシンのマシンタイプと、各マシンタイプによって実現される最大下り(外向き)帯域幅(Gbps)です。
1 つの TCP ストリームで iperf3
を実行すると帯域幅が制限されるため、iperf3
ツールは複数の並列ストリームで実行する必要があります。
Bare Metal Solution サーバーにログインし、iperf3
サーバーを実行してクライアントからの TCP 接続を受け入れます。
iperf3 -s 192.168.1.10
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
サーバー接続を開いたままにして、Compute Engine VM から iperf3 を実行し、スループットをテストします。
iperf3 -c 192.168.1.10 -P 128
Connecting to host 192.168.1.10, port 5201
[SUM] 0.00-10.00 sec 10.3 GBytes 8.85 Gbits/sec 150161 sender
[SUM] 0.00-10.00 sec 10.3 GBytes 8.82 Gbits/sec receiver
必要な速度と帯域幅が得られない場合は、次のいずれかのシナリオに該当するかどうか確認します。
シナリオ 1: 踏み台ホストが小規模な VM で、下り(外向き)最大帯域幅の上限が設定されている
すべてのサーバータイプの下り(外向き)帯域幅の上限は、Compute Engine のマシンタイプ ページで確認できます。
5 Gbps の Partner Interconnect を備えた Bare Metal Solution サーバーと同じリージョン内で Compute Engine VM(n1-standard-1
など)を使用している場合は、次の要件を満たす必要があります。
iperf3 -c 192.168.1.10 -P 128
Connecting to host 192.168.1.10, port 5201
[SUM] 0.00-10.00 sec 2.31 GBytes 1.98 Gbits/sec 129 sender
[SUM] 0.00-10.00 sec 2.24 GBytes 1.93 Gbits/sec receiver
これらの結果は、それぞれ 5 Gbps の速度の 2 つの相互接続がある場合でも、想定どおりのパフォーマンスが得られないことを示しています。これは、n1-standard-1
マシンでサポートされる最大下り(外向き)帯域幅が 2 Gbps であるためです。
解決策: 目的の結果を得るには、より大きな VM に移行します。
シナリオ 2: 踏み台ホストが Bare Metal Solution サーバーと異なるリージョンにある
クロスリージョン サーバー間で速度テストを行うと、アドオンのリージョン間レイテンシが原因で意図した結果が得られません。
次のテストでは、us-central1
の Compute Engine VM と southamerica-east1
の Bare Metal Solution サーバー間の速度テストを行います。
iperf3 -c 192.168.1.10 -P 128
Connecting to host 192.168.1.10, port 5201
[SUM] 0.00-10.00 sec 3.12 GBytes 2.68 Gbits/sec 15569 sender
[SUM] 0.00-10.00 sec 3.02 GBytes 2.60 Gbits/sec receiver
リージョン間接続を行うと、帯域幅 / 速度が大幅に低下します。
解決策: 同じリージョンから Bare Metal Solution サーバーに接続します。
シナリオ 3: iperf3 が複数の並列ストリームで実行されている
以下は、単一 TCP ストリームを使用して iperf3
を実行した結果です。
iperf3 -c 192.168.1.10
Connecting to host 192.168.1.10, port 5201
[ 5] local 10.158.0.6 port 40382 connected to 192.168.1.10 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 325 MBytes 2.72 Gbits/sec 162 1.72 MBytes
[ 5] 1.00-2.00 sec 345 MBytes 2.89 Gbits/sec 42 1.36 MBytes
[ 5] 2.00-3.00 sec 345 MBytes 2.89 Gbits/sec 0 1.53 MBytes
[ 5] 3.00-4.00 sec 344 MBytes 2.88 Gbits/sec 0 1.68 MBytes
[ 5] 4.00-5.00 sec 345 MBytes 2.89 Gbits/sec 67 1.32 MBytes
[ 5] 5.00-6.00 sec 345 MBytes 2.89 Gbits/sec 0 1.49 MBytes
[ 5] 6.00-7.00 sec 345 MBytes 2.89 Gbits/sec 0 1.65 MBytes
[ 5] 7.00-8.00 sec 344 MBytes 2.88 Gbits/sec 0 1.79 MBytes
[ 5] 8.00-9.00 sec 321 MBytes 2.69 Gbits/sec 64 1.39 MBytes
[ 5] 9.00-10.00 sec 324 MBytes 2.72 Gbits/sec 91 1.13 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 3.30 GBytes 2.84 Gbits/sec 426 sender
[ 5] 0.00-10.00 sec 3.30 GBytes 2.83 Gbits/sec receiver
同じサーバーから iperf3
を実行し、複数の TCP ストリームを使用すると、目的のパフォーマンスを達成できます。
iperf3 -c 192.168.1.10 -P 128
Connecting to host 192.168.1.10, port 5201
[SUM] 0.00-10.00 sec 10.3 GBytes 8.85 Gbits/sec 150161 sender
[SUM] 0.00-10.00 sec 10.3 GBytes 8.82 Gbits/sec receiver
解決策: iperf3
で複数の並列ストリームを使用します。
ステップ 2: ネットワーク レイテンシを測定する
同じリージョン内に接続する場合、平均ラウンドトリップ レイテンシは 2 ms 未満と想定できます。
ping
を使用して、サーバー間のレイテンシを確認します。mtr
を使用して平均レイテンシを取得することもできます。
ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=88 time=1.78 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=88 time=0.507 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=88 time=0.659 ms
64 bytes from 192.168.1.10: icmp_seq=4 ttl=88 time=0.735 ms
64 bytes from 192.168.1.10: icmp_seq=5 ttl=88 time=0.592 ms
64 bytes from 192.168.1.10: icmp_seq=6 ttl=88 time=0.550 ms
64 bytes from 192.168.1.10: icmp_seq=7 ttl=88 time=0.552 ms
64 bytes from 192.168.1.10: icmp_seq=8 ttl=88 time=0.588 ms
64 bytes from 192.168.1.10: icmp_seq=9 ttl=88 time=0.614 ms
^C
--- 192.168.1.10 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 169ms
rtt min/avg/max/mdev = 0.507/0.730/1.781/0.378 ms
最小、平均、最大のレイテンシは 2 ミリ秒内に収まっており、これは Google Cloud リージョンとリージョン拡張との間のレイテンシとして想定されています。
または、MTR
を使用してレイテンシを動的に測定することもできます。
mtr --curses 192.168.1.10
test-arka (10.158.0.6) 2020-12-11T08:08:51+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
host Loss% Snt Last Avg Best Wrst StDev
1. ???
2. 192.168.1.10 0.0% 16 0.7 0.7 0.6 1.5 0.2
mtr
を使用すると、目的のネットワーク パフォーマンスも確認できます。
平均レイテンシが 2 ms を超える場合は、同じリージョン内で接続が発生しているかどうかを確認します。次のように、クロスリージョンでレイテンシ テストを行うと、レイテンシのオーバーヘッドが増加します。
ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=59 time=144 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=59 time=142 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=59 time=142 ms
64 bytes from 192.168.1.10: icmp_seq=4 ttl=59 time=142 ms
64 bytes from 192.168.1.10: icmp_seq=5 ttl=59 time=142 ms
64 bytes from 192.168.1.10: icmp_seq=6 ttl=59 time=142 ms
^C
--- 192.168.1.10 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5003ms
rtt min/avg/max/mdev = 142.004/142.390/144.079/0.845 ms
解決策: 同じリージョン内で接続します。
ステップ 3: ホップ数を確認する
前述のテストで不一致がある場合は、踏み台インスタンスと Bare Metal Solution ホストの間のホップ数を確認します。不要なホップが行われると、ネットワーク パフォーマンスが低下する可能性があります。
traceroute 192.168.1.10
traceroute to 192.168.1.10 (192.168.1.10), 30 hops max, 60 byte packets
1 * * *
2 169.254.215.122 (169.254.215.122) 2.713 ms * 1.757 ms
3 192.168.1.10 (192.168.1.10) 2.656 ms 2.595 ms *
traceroute 192.168.1.10
traceroute to 192.168.1.10 (192.168.1.10), 30 hops max, 60 byte packets
1 * * *
2 192.168.1.10 (192.168.1.10) 2.323 ms 2.260 ms 2.353 ms
Bare Metal Solution サーバーと同じリージョン内の Compute Engine インスタンス間でテストを行うと、ホップはまったく表示されないか、ホスト側のデータセンター ルーターで最大 1 つのホップが表示されます。
上の例で、169.254.215.122
はホスト側のデータセンターの IP です。このアドレスは、Console の [ハイブリッド接続] -> [相互接続] ページで確認できます。
IP 範囲 169.254.0.0
のホップが見つかった場合、これらは Google Cloud の内部 Cloud Router の IP であるため、問題ありません。これ以外のホップが見つかった場合は、追加のホップをさらに詳しく調べる必要があります。また、追加のホップがどこで、どのように発生したのかについて、サポートへのお問い合わせが必要になる可能性があります。