Как я могу рассчитать использование полосы пропускания 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