Как я могу рассчитать использование полосы пропускания 95% сетевого устройства?

Мой провайдер выставляет счет за мою пропускную способность 95-процентным методом. Я знаю, что это в принципе (проведите замеры, отбросьте верхние 5% и используйте оставшиеся самые высокие в качестве результата).

Вопрос здесь в том, что используется в качестве базы данных!

Насколько я понимаю, у моего текущего провайдера коммутатор регистрирует трафик за 5-минутный интервал. Не одно измерение каждые 5 минут, а 5-минутное среднее!

Является ли интервал стандартизированным или хотя бы де-факто стандартом в отрасли? Является ли также стандартным использование средней полосы пропускания (которая равна данным, разделенным по времени) в течение этих интервалов или просто, например, 5-секундное среднее значение каждые 5 минут?

Мой второй вопрос: есть ли приложение, например, vnstat, которое я могу использовать для измерения 95-процентного значения самостоятельно?

4 ответа

Решение

Стандарт, который я знаю, заключается в простом просмотре сетевых счетчиков (передаваемых пакетов / байтов) за 5 минут. Все просто - это даст вам среднее значение, так как вы не знаете, как это было распределено за 5 минут.

В основном измеряйте счетчики отправленных / полученных байтов / пакетов от сетевого оборудования каждые 5 минут. Это 100%. Выбросьте 5% самых высоких чисел, то есть 95% процентиль.

Измерять себя - да, но получить точно такие же цифры сложно (нужно измерять одни и те же элементы в одно и то же время).

У вас есть какие-либо устройства маршрутизатора / брандмауэра или вы просто подключаетесь с хоста Linux? (это имеет значение в ваших параметрах мониторинга)

Кроме того, какова ваша преданная ставка прямо сейчас по сравнению с вашей предельной ставкой?

Ваш провайдер должен предоставить вам рабочий график (обычно это производное RRDtool и / или MRTG), отображающий использование вами пропускной способности на протяжении всего цикла выставления счетов. Они могут измерять с вашего порта uplink.

Я использую Observium на моей стороне, но это для большей установки. Я коснусь внешнего интерфейса моего периферийного устройства и буду следить за 95-м процентилем. Этот инструмент предназначен для использования поставщиками услуг, поэтому все шаблоны выставления счетов присутствуют.

Что-то вроде:

введите описание здесь

Я получаю следующую разбивку (с прогнозом) каждый месяц от одного из моих провайдеров...

--------------------------------
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

--------------------------------

Если вы на Linux, ifconfig дает вам несколько советов. Запустите скрипт, чтобы получить данные с 5-минутным интервалом, а затем вручную отрежьте верхние 5% данных и все готово.

На микроуровне вы можете проверить ethtool -S ethX где вы получаете подробную статистику пакетов. Опять же, вставьте сценарий с 5-минутным интервалом, рассчитайте день или два, а затем выполните некоторые измерения. Вставьте команду даты после каждой итерации основной команды, чтобы получить оценку того, когда вы измеряете и когда ваш провайдер измеряет.

Вокруг были патчи, которые добавляли графики 95-го процентиля к MRTG, но они не были приняты в исходном коде и, вероятно, никогда не будут приняты.

Вы должны "обновить" до rrdtool того же автора, который делает 95-й процентиль, но обычно требует больше работы для настройки. Преимущество здесь в том, что rrdtool гораздо более гибкий, чем mrtg, и вы можете делать с ним многое другое.

Если вы хотите настроить более полное решение для мониторинга и построения графиков, у Cacti и его друзей есть шаблоны сетевого трафика, включающие 95-й процентиль.

Это должно дать вам 95-й процентиль интерфейса в Linux:

======= 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
Другие вопросы по тегам