web-dev-qa-db-ja.com

ネットワークデバイスの95パーセンタイル帯域幅使用量を計算するにはどうすればよいですか?

私のプロバイダーは、95パーセンタイル方式を使用して帯域幅を請求しています。私はそれが原則として何であるかを知っています(測定を行い、上位5%を捨て、結果として残りの最高を使用します)。

ここでの問題は、基本データとして何が使用されるかです。

現在のプロバイダーでは、スイッチが5分間隔でトラフィックをログに記録することを理解しています。 5分ごとに1回の測定ではなく、5分の平均です。

間隔は業界で標準化されていますか、それとも少なくとも事実上の標準ですか?これらの間隔で平均帯域幅(時間で割ったデータに等しい)を使用することも標準ですか、それともたとえば5分ごとに5秒の平均を取るだけですか?

2番目の質問は、vnstatのように、95パーセンタイルを自分で測定するために使用できるアプリケーションはありますか?

1
The Shurrican

私が知っている標準は、5分ごとのネットワークカウンター(送信パケット/バイト)を確認することです。そのように単純です-これは、5分間でどのように分散されたかわからないため、平均を示します。

基本的に、5分ごとにネットワーク機器から送受信されたバイト/パケットのカウンタを測定します。それは100%です。 5%の最高値、つまり95%のパーセンタイルを破棄します。

自分自身を測定する-はい、しかし正確に同じ数値を取得することは困難です(同じ要素を正確に同時に測定する必要があります)。

3
TomTom

Linuxを使用している場合、ifconfigはいくつかのヒントを提供します。スクリプトを実行して5分間隔でデータを取得してから、上位5%のデータを手動で切り取って完了します。

ミクロレベルでは、詳細なパケット統計を取得するethtool -S ethXを確認できます。繰り返しになりますが、5分間隔でスクリプトを挿入し、1〜2日計算してから、いくつかの測定を実行します。 mainコマンドの各反復の後にdateコマンドを挿入して、測定しているときとプロバイダーが測定しているときの見積もりを取得します。

1

セットアップにルーター/ファイアウォールデバイスがありますか、それともLinuxホストから接続しているだけですか? (それはあなたの監視オプションに違いをもたらします)

また、バースト可能レートに対する現在のコミットレートはどれくらいですか?

プロバイダーは、請求サイクル全体の帯域幅使用率を表示する実行中のグラフ(通常はRRDtoolの派生物やMRTG)を提供する必要があります。彼らはあなたのアップリンクポートから測定することができます。

私は Observium を使用していますが、これは大規模なインストール用です。 Edgeデバイスの外部インターフェイスをタップして、そこで95パーセンタイルを監視します。このツールはサービスプロバイダーが使用することを目的としているため、請求テンプレートはすべて存在します。

何かのようなもの:

enter image description here

プロバイダーの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

--------------------------------
1
ewwhite

[〜#〜] mrtg [〜#〜] に95パーセンタイルグラフを追加したパッチがありましたが、アップストリームソースでは受け入れられず、おそらく受け入れられませんでした。

同じ作成者が rrdtool に「アップグレード」する必要があります。これは 95パーセンタイル ですが、通常はセットアップにさらに多くの作業が必要です。ここでの利点は、rrdtoolがmrtgよりもはるかに柔軟性があり、他の多くのことを実行できることです。

より完全な監視およびグラフ作成ソリューションを設定する場合は、 Cacti とその友人全員が、95パーセンタイルを含むネットワークトラフィック用のテンプレートを持っています。

1
Luke404

これにより、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
0
user456300