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 であるため、問題ありません。これ以外のホップが見つかった場合は、追加のホップをさらに詳しく調べる必要があります。また、追加のホップがどこで、どのように発生したのかについて、サポートへのお問い合わせが必要になる可能性があります。