帯域と転送量が測るもの
注文画面に並ぶ二つの語は、同じものを測っていません。帯域は Mbps または Gbps で書き、その 1 秒にどれだけ進めるかを答えます。転送量は GB または TB で書き、1 時間、1 日、1 か月に何バイト流れたかを答えます。
ポートを車線の制限速度、月間転送量を走った距離と考えると整理できます。制限速度がそのままでも、車線が混み続けるほど距離は伸びます。距離のメーターを止めても、制限速度の標識は残ります。
請求のうえでの転送量無制限は、月間バイト数を別行で足さないということです。ポートを任意の速度にはしません。250 Mbps の段は、どの 1 秒でも上限が 250 Mbps です。1 Gbps と 2 Gbps も同じで、変わるのは上限の数字と月額の加算です。三つの段とも、転送量の従量課金はありません。
速度測定のページは、数秒から数十秒、ポートを埋めようとします。結果が購入段に近ければ、その短い時間は経路がその速度まで届いたということです。結果が大きく下回るときは、測定先と、ダウンロードかアップロードかを先に見ます。一度の測定は、月全体にその速度が必要だという証拠にはならず、マシン自身のバイトカウンタの代わりにもなりません。
三つのポートはそれぞれどれだけ進むか
換算は十進です。1 Mbps は毎秒 100 万ビットです。8 で割ると、毎秒 100 万バイト、日常の MB/s になります。250 ÷ 8 = 31.25 なので、250 Mbps を埋め切ると約 31.25 MB/s です。1 Gbps は 1000 Mbps として約 125 MB/s、2 Gbps は約 250 MB/s です。
1 GB のファイルを 1000 MB と数えると、250 Mbps を埋め切った状態で約 32 秒です。同じファイルは、1 Gbps で約 8 秒、2 Gbps で約 4 秒です。経路全体、相手、ディスク、アプリケーションが追いついているときの話です。ディスクや相手の方が遅いと、ポートはまだ上限に達しておらず、ファイル時間もこの秒数まで縮みません。
月間転送量も同じ単位で見積もります。30 日間、速度を埋め切ったまま走らせた場合です。
TB = Mbps × 86400 × 30 ÷ 8 ÷ 1000000
86400 は 1 日の秒数です。まずビットになり、8 で割ってバイト、1,000,000 で割って TB です。ここでは 1 TB = 1000 GB、1 GB = 1000 MB で、上の MB/s と揃えています。250、1000、2000 を入れると、81 TB、324 TB、648 TB です。これは 30 日間、一刻も休まず埋め切ったときだけの合計で、転送量を別に課金しない範囲の距離を示す数字です。業務に足りるかは、次の節の混雑時の計測で判断します。
| ポート | 埋め切った速度 | 30 日連続 | 月額の加算 |
|---|---|---|---|
| 250 Mbps | 31.25 MB/s | 81 TB | $0 |
| 1 Gbps | 125 MB/s | 324 TB | $245.0 |
| 2 Gbps | 250 MB/s | 648 TB | $742.7 |
NIC のネゴシエーション速度は別の数字です。Linux の /sys/class/net/NIC名/speed は 1000 や 10000 を示すことが多く、NIC とスイッチの間が 1 Gbps または 10 Gbps になったという意味です。このファイルは購入したポートを返しません。10 Gbps の NIC を載せていても、購入ポートは 250 Mbps のままです。ethtool やこの speed で「250 Mbps を買ったか」を確かめると一致しません。制限している箇所が違うからです。
混雑時に張り付いてから一段上げる
一段上げる根拠は、業務の混雑時にポートが待ちの原因になっていることです。普段は毎秒数メガビットで、バックアップの時間だけアップロードが 250 Mbps に張り付くなら、伸びているのはバックアップで、見るのは送信です。利用者がパッケージをダウンロードし、受信が上限に張り付いてページが並ぶなら、見るのは受信です。向きごとにポートの数字と比べます。受信と送信を足してから 250 と比べると、二つの向きを一つの大きな数に重ねてしまいます。
計測は実際に忙しい時間へ置きます。午後の空いた時間の一度きりではありません。バックアップは夜、リリースは決まった時刻、アクセスの山は業務のタイムゾーンに従います。短い計測を続けて、高い側がどれだけ長く留まるかを見ます。1、2 秒だけ上限に触れてすぐ下がるのはバーストです。バックアップやアクセスの窓全体で、高い側がポートの数字の近くに留まり、その窓がポートによって伸びているなら、その段は足りていません。
六割は読み取りの目安で、請求には書きません。250 Mbps の六割は約 150 Mbps、1 Gbps は約 600 Mbps、2 Gbps は約 1200 Mbps です。混雑の窓で高い側の多くがこの線より下なら、ポートにはまだ余裕があります。この線をしばしば越え、ポートの数字に何度も張り付くなら、次の段を見ます。
| 混雑時に見えたこと | 扱い |
|---|---|
| 高い側の多くがポートの六割未満で、まれに触れてすぐ戻る | 今の段のまま |
| バックアップ、同期、配信の窓全体で、送信か受信が 250 Mbps に張り付く | 1 Gbps を見る |
| すでに 1 Gbps で、同じ種類の窓がまだ 1000 Mbps に張り付く | 2 Gbps を見る |
| 速度測定は一度埋まるが、業務カウンタは混雑時も低い | 今の段のまま |
| ディスクや相手が先に埋まり、ポートの計測は購入段を大きく下回る | 先にディスクか相手を見る。ポートは動かさない |
250 Mbps から 1 Gbps へ上げると、埋め切ったときのバイト速度は約 4 倍です。1000 ÷ 250 = 4 だからです。1 Gbps から 2 Gbps へは、さらに約 2 倍です。ファイルがその倍率で短くなるかは、ディスクと相手が受け止められるかによります。計測がすでに上限に張り付き、ディスクのスループットに余裕があるとき、一段上げるとその時間が縮みます。計測が段を大きく下回り、ディスクが先に埋まっているとき、ポートを大きくしてもファイル時間はディスクのままです。
受け取り後にカウンタで確かめる
コンソールの先頭行のアドレスが載っている NIC のカウンタを読みます。先にアドレスを一覧し、次のコマンドの NIC 名を、その先頭行を持つものへ替えます。eno1 は仮の名前です。
ip -br addr
10 秒の計測で、この短い区間がポートに張り付いているかを判断できます。開始と終了の受信バイト、送信バイトの差を 10 で割り、毎秒バイトにします。8 を掛け、1,000,000 で割ると Mbps です。受信と送信は別の行に出します。
DEV=eno1
RX1=$(cat /sys/class/net/$DEV/statistics/rx_bytes)
TX1=$(cat /sys/class/net/$DEV/statistics/tx_bytes)
sleep 10
RX2=$(cat /sys/class/net/$DEV/statistics/rx_bytes)
TX2=$(cat /sys/class/net/$DEV/statistics/tx_bytes)
awk -v rx1="$RX1" -v rx2="$RX2" -v tx1="$TX1" -v tx2="$TX2" 'BEGIN {
printf "in %.1f Mbps\n", (rx2-rx1)/10*8/1000000
printf "out %.1f Mbps\n", (tx2-tx1)/10*8/1000000
}'
混雑の窓では 1、2 分おきに繰り返し、高い側の数値を残します。一度より役に立ちます。夜のバックアップは開始後に、日中のアクセスは最も多い 1 時間に測ります。アイドル時に 0 に近い値は、そのとき業務がなかったことだけを示します。ポートが大きすぎることは示しません。
1 日の形を見るなら vnstat を入れ、混雑日を少なくとも 1 日分カバーさせてから時間ごとに読みます。入れた直後の 1 時間には履歴がないので、昨日の判断には使えません。
vnstat -i eno1 -h
Windows では、リンクアップしていて、アドレスがコンソール先頭行と一致するアダプタで同じ 10 秒差を取ります。名前は Get-NetAdapter で Status が Up、アドレスが一致するものへ替えます。
$n = "Ethernet"
$a = Get-NetAdapterStatistics -Name $n
Start-Sleep -Seconds 10
$b = Get-NetAdapterStatistics -Name $n
"in {0:N1} Mbps" -f (($b.ReceivedBytes - $a.ReceivedBytes) * 8 / 10 / 1000000)
"out {0:N1} Mbps" -f (($b.SentBytes - $a.SentBytes) * 8 / 10 / 1000000)
確認はこの順です。
- 01 注文のポートが 250 Mbps、1 Gbps、2 Gbps のどれかを確認する。NIC の speed はこの手順に入れない。
- 02 コンソール先頭行のアドレスを持つ NIC またはアダプタを見つける。
- 03 バックアップ、同期、アクセスの山で 10 秒計測を繰り返し、受信と送信を分けて残す。
- 04 高い側の多くがその段の六割未満なら、今の段のままにする。窓全体がポートの数字に張り付くなら、次の段を見る。
- 05 ポートの計測は低いままで作業が遅いなら、帯域を上げる前にディスクと相手を調べる。
帯域の加算を月額へ入れる
ポートの段は、メモリ、ディスク、アドレス、OS と一緒に月額へ足してから、期間の月数を掛けます。月払いは 1、四半期は 3、半年は 6、年は 12 です。どの期間も割引はなく、設置料もありません。三つの段とも TB ごとの従量はないので、一段上げて増えるのはポートの月額であり、使用量の残額ではありません。
128GB の月額は $454.8 です。標準の 1TB NVMe が 2 台、それぞれ直結で、ハードウェア RAID はありません。使える容量は 2 台の合計で 2TB です。帯域を 250 Mbps のままにすると加算は $0 です。1 Gbps にすると月 $245.0 が加わり、このマシンの月額は $699.8 になります。四半期は $2,099.4、年は $8,397.6 です。2 Gbps にすると月 $742.7 が加わります。ディスクもアドレスも追加せず、無償の OS のとき、月額は $1,197.5 です。256GB の月額は $612.7 で、メモリは DDR4-3200 ECC RDIMM です。二つの段は注文時に選びます。プロセッサは AMD EPYC 7543P、32 コア 64 スレッド、2.8 から 3.7 GHz です。追加の 2TB NVMe は 1 台あたり月 $84.7、最大 2 台で、やはり直結です。追加 IPv4 は 1 個あたり月 $1.6 です。マシンは日本の東京に置きます。Linux は SSH、Windows を選んだあとは RDP です。
ディスク、アドレス、有償 OS を足すときは、その月額を、すでに帯域を含んだ $699.8 や $1,197.5 へまとめてから月数を掛けます。帯域の加算だけを月数倍し、本体を 1 か月分のままにすると、期間が揃いません。
構成ページの帯域は三つのうち一つです。前の節の混雑時の計測で段を決め、この節で加算を期間へ掛けます。月間バイトの列は転送量無制限がすでに覆っています。選ぶこと自体が答えるのは、混雑時にポートが足りる速さかどうかです。