私のプロバイダーは、95パーセンタイル方式を使用して帯域幅を請求しています。私はそれが原則として何であるかを知っています(測定を行い、上位5%を捨て、結果として残りの最高を使用します)。
ここでの問題は、基本データとして何が使用されるかです。
現在のプロバイダーでは、スイッチが5分間隔でトラフィックをログに記録することを理解しています。 5分ごとに1回の測定ではなく、5分の平均です。
間隔は業界で標準化されていますか、それとも少なくとも事実上の標準ですか?これらの間隔で平均帯域幅(時間で割ったデータに等しい)を使用することも標準ですか、それともたとえば5分ごとに5秒の平均を取るだけですか?
2番目の質問は、vnstatのように、95パーセンタイルを自分で測定するために使用できるアプリケーションはありますか?
私が知っている標準は、5分ごとのネットワークカウンター(送信パケット/バイト)を確認することです。そのように単純です-これは、5分間でどのように分散されたかわからないため、平均を示します。
基本的に、5分ごとにネットワーク機器から送受信されたバイト/パケットのカウンタを測定します。それは100%です。 5%の最高値、つまり95%のパーセンタイルを破棄します。
自分自身を測定する-はい、しかし正確に同じ数値を取得することは困難です(同じ要素を正確に同時に測定する必要があります)。
Linuxを使用している場合、ifconfig
はいくつかのヒントを提供します。スクリプトを実行して5分間隔でデータを取得してから、上位5%のデータを手動で切り取って完了します。
ミクロレベルでは、詳細なパケット統計を取得するethtool -S ethX
を確認できます。繰り返しになりますが、5分間隔でスクリプトを挿入し、1〜2日計算してから、いくつかの測定を実行します。 mainコマンドの各反復の後にdateコマンドを挿入して、測定しているときとプロバイダーが測定しているときの見積もりを取得します。
セットアップにルーター/ファイアウォールデバイスがありますか、それともLinuxホストから接続しているだけですか? (それはあなたの監視オプションに違いをもたらします)
また、バースト可能レートに対する現在のコミットレートはどれくらいですか?
プロバイダーは、請求サイクル全体の帯域幅使用率を表示する実行中のグラフ(通常はRRDtoolの派生物やMRTG)を提供する必要があります。彼らはあなたのアップリンクポートから測定することができます。
私は Observium を使用していますが、これは大規模なインストール用です。 Edgeデバイスの外部インターフェイスをタップして、そこで95パーセンタイルを監視します。このツールはサービスプロバイダーが使用することを目的としているため、請求テンプレートはすべて存在します。
何かのようなもの:
プロバイダーの1つから毎月次の内訳(予測付き)を受け取ります...
--------------------------------
Transit : Bandwidth Usage Breakdown
--------------------------------
Last Month Usage Breakdown:
From: Tue Jan 1 00:00:00 CST 2013
To: Fri Feb 1 00:00:00 CST 2013
GBytes IN = 184.661
GBytes OUT = 944.873
-----------------
TOTAL = 1129.534
95th Percentile: 9.866 Mbps
--------------------------------
Month-To-Date Usage Breakdown:
From: Fri Feb 1 00:00:00 CST 2013
To: Mon Feb 11 07:33:37 CST 2013
GBytes IN = 60.902
GBytes OUT = 287.265
-----------------
TOTAL = 348.168
95th Percentile: 9.906 Mbps
--------------------------------
Current Month Projection Usage Breakdown:
From: Fri Feb 1 00:00:00 CST 2013
To: Fri Mar 1 00:00:00 CST 2013
GBytes IN = 60.902
GBytes OUT = 287.265
-----------------
TOTAL = 348.168
95th Percentile: 9.412 Mbps
--------------------------------
[〜#〜] mrtg [〜#〜] に95パーセンタイルグラフを追加したパッチがありましたが、アップストリームソースでは受け入れられず、おそらく受け入れられませんでした。
同じ作成者が rrdtool に「アップグレード」する必要があります。これは 95パーセンタイル ですが、通常はセットアップにさらに多くの作業が必要です。ここでの利点は、rrdtoolがmrtgよりもはるかに柔軟性があり、他の多くのことを実行できることです。
より完全な監視およびグラフ作成ソリューションを設定する場合は、 Cacti とその友人全員が、95パーセンタイルを含むネットワークトラフィック用のテンプレートを持っています。
これにより、Linuxのインターフェースの95パーセンタイルが得られるはずです。
======= 95th.sh =====
#!/bin/bash
IFACE=${1-eth0}
INTERVAL=${2-10}
# Generate environment vars RX1,RX2 and TX1,TX2 which are 10 seconds apart:
eval $(
ifconfig $IFACE | grep '[RT]X packets' | awk '{print $1" "$5}' | sed 's/ /1=/'
sleep $INTERVAL
ifconfig $IFACE | grep '[RT]X packets' | awk '{print $1" "$5}' | sed 's/ /2=/')
# Convert to kbit/sec:
let "RX=($RX2-$RX1)*8/$INTERVAL / 1000"
let "TX=($TX2-$TX1)*8/$INTERVAL / 1000"
# BX is the max of both:
let "BX = $TX > RX ? $TX : $RX"
echo $BX RX=$RX TX=$TX BX=$BX $(date '+%F %H:%M:%S')
====/etc/crontab ====
*/5 * * * * root /usr/local/bin/95th.sh eth0 >> /var/log/95th-percent.log
====ログから95パーセンタイルエントリをキロビットで検索====
DATE=2019-06
PERCENTILE=95
grep $DATE /var/log/95th-percent.log | sort -nr | head -n $(( $( grep -c $DATE /var/log/95th-percent.log ) * (100-$PERCENTILE) / 100 )) | tail -1