LINUX.ORG.RU
ФорумTalks

Велосипеды и грабли

 ,


0

1

Жил был скрипт, много лет. IMHO со времён nagios-3.3 (2011 г.)

ethtool -S "${1:-eth0}" 2>/dev/zero | awk '/[rt]x_bytes/{if(match($1,"^rx"))R+=$2; else S+=$2;}END{printf "R=%s S=%s\n",R,S;}'
А потом пришли «Intel 82599EB» и «Intel X540-AT2»

Смотрю в нагиосе трафик на сервере и вижу 1.5Гбит/с

Смотрю такой же график на коммутаторе, а там 0.75Гбит/с

Смотрим на сервере

ethtool -S eth2 | grep '[rt]x_bytes'
     rx_bytes: 268997501295196
     tx_bytes: 269577166707683
     rx_bytes_nic: 271253542971821
     tx_bytes_nic: 271911704167621
#@$%^&* !

★★★★★

Ответ на: комментарий от cocucka

скрипт отдавал фактически удвоенный трафик

x_bytes - это сколько принято/отдано в ОС, а x_bytes_nic - это сколько физически карта приняла/передала

Разница из-за наличия дропов и offload.

vel ★★★★★
() автор топика
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от Harliff

небыло строк [rt]x_bytes_nic:

vel ★★★★★
() автор топика

Так, пажжи. Ты написал скрипт, подсчитывающий количество принятых/переданных байт через интерфейс, так? Потом поменял сетевуху, и оно вместо фактического количества стало выдавать количество байт, прошедших через карту вообще, в т.ч. и "дропнутых"? И всё из-за наличия двух дополнительных переменных, которые awk и брал вместо нужных?

Korchevatel ★★★★★
()

Неприятно, но ты и сам в курсе, что велосипед.
Нет у консольных утилит обязанности беречь формат человекочитаемого вывода.

Если нет ключа вывода в parser-friendly формат, то и гарантий тоже нет.

aidaho ★★★★★
()

Забавный глюк. Как там было то: если у вас есть проблема и вы решили использовать регулярки для ее решения, то теперь у вас две проблемы :)

cobold ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.