はじめに
数千台の端末が存在するNWにおいて、同時に何台の端末でダウンロード通信が行えるかを知りたく、帯域使用率を計算してみました。
アプリケーションのダウンロードを行う際、数千台が同時にダウンロードを開始してしまうと、回線帯域を超えたトラフィック量の通信が発生して負荷がかかってしまい、他の通信にも影響を及ぼしてしまいます。
そのため、端末をいくつかにグループ分けし、タスクスケジューラでダウンロード開始のタイミングを分散させようと考えました。
「一定間隔ごとに何台ずつのグループに端末を分ければ、安全にダウンロード通信を行えるのか」を知ることが目的です。
※記事にしておいてなんですが、初心者で間違いがある可能性もあるため、お気づきの点があればご指摘いただけると幸いです!
前提
[ダウンロードしたいアプリケーションの容量]
約500MB
[回線速度]
600Mbps(ベストエフォート型か帯域保証型か不明…)
[端末台数]
今回は4000台とした場合で計算
実際に行ったこと
①端末のだいたいのグループ分け
数千台の端末をグループ分けする際、わかりやすいグループに分けたいと思い、毎週"月~金"で5つのグループに分けた。
端末台数的に、より小分けにする必要があったため、9時~17時の1時間ごとにさらに小分けにすることにし、全部で40のグループに分けると想定した。
月~金の5グループ × 9時~17時の8グループ = 40グループ
②現在の回線使用状況の確認
回線速度600Mbpsではあるが、もちろん今回のアプリケーションのダウンロード以外でも回線を使用しているため、600Mbpsの帯域をすべて使用できるわけではない。
既にどれくらいの通信が日々行われているのかを知るため、5分間隔で回線トラフィック量を記録したグラフを1か月分(30日分)用いて、だいたい何%使用して大丈夫そうなのかのあたりを付けた。
日々のグラフから、だいたい25%程度だったらどの曜日、どの時間帯でも使用して問題なさそうなことが分かった。
③1グループの台数を計算
①で行っただいたいのグループ分けから、1グループ何台かを計算する。
全体台数(4000台) ÷ 40グループ = 1グループ台数
ここでは1グループ100台と仮定する。
④1時間のデータダウンロード量の計算
1グループは毎日9時~17時を1時間ごとに区切ったグループであるので、1時間でダウンロードされる容量を計算する。
アプリケーション容量500MB × 1グループ100台 = 50GB
1時間のデータダウンロード量は50GB。
⑤回線帯域の1時間のキャパを計算
回線速度は600Mbpsである。
「bps = bits per second(1秒あたりのデータ転送ビット数)」なので、以下のように1時間あたりのバイト数に換算した。
600Mbps = 2,160,000Mbit/3600sec(1時間) = 270,000MB/1時間 = 270GB/1時間
1時間当たりだと270GB/1時間。
ただし、帯域を100%使用できるとは考えないほうがいいと判断し、MAXでも80%を使用可能という前提で計算することとした。
その場合、以下となる。
270GB/1時間 × 0.8 = 216GB/1時間
1時間換算で216GB/1時間の回線帯域として計算することとする。
⑥帯域使用率の計算
1時間に行われるダウンロードにおいて、回線帯域をどの程度使用しているかの計算をする。
データ容量 ÷ 回線速度 × 100 = 帯域使用率
なので、
50GB ÷ 216GB/1時間 × 100 ≒ 23.1%
以上のことから、
1時間に100台の端末が同時に約500MBのアプリケーションをダウンロードする際、
600Mbpsの回線の使用率は23.1%ということが分かった。
まとめ
上記の計算により、今回の場合は同時に100台のダウンロードを行うと、回線帯域の23.1%を使用することとなり、一応はダウンロード可能という結論に至りました。
ただ、ダウンロード以外の何かしらの要因で通信量が増加した際に、かなりギリギリとなってしまう値かもしれないということもわかりました。
今後、どの程度余裕を持って計算をするべきなのか、経験者に確認しつつ、最終的な同時ダウンロード台数を決定していく方針となっております。