Buffer full drop что это
Перейти к содержимому

Buffer full drop что это

  • автор:

Buffer full drop что это

Какие ошибки?
Для понимания:
CRC Error 7 Excessive Deferral 0
Undersize 0 CRC Error 0
Oversize 0 Late Collision 0
Fragment 1 Excessive Collision 0
Jabber 0 Single Collision 0
Symbol Error 4 Collision 0
Buffer Full Drop 101629 STP Drop 18065
ACL Drop 0 HOL Drop 0
Multicast Drop 0
VLAN Ingress Drop 22332842
Invalid IPv6 0
STP Drop 6595
Storm and FDB Discard 0
MTU Drop 0

Типы ошибок (dlink)

Why do UDP packets get dropped?

The first time I heard this joke I did not understand it because I didn’t really understand what UDP was. UDP is a network protocol. The deal is: I send you a network packet. Maybe you get it, maybe you don’t. I have no idea whether it arrived or not. UDP doesn’t care.

When you’re losing UDP packets, it’s sort of tempting to say “well, whatever, that’s what happens when you use UDP!” But UDP packets don’t get lost by magic.

I was pretty confused about some the details of dropping UDP packets (how do you know how many packets got dropped? what causes a packet to be dropped exactly?) Maggie Zhou (who is the best) explained some new things to me today! All the parts of this that are right are thanks to her and all the parts that are wrong are thanks to me.

This is all on Linux, as usual. There are going to be sysctls! It will be the best.

lost on the way out

Imagine you’re sending a lot of UDP packets. Really a lot. On every UDP socket, there’s a “socket send buffer” that you put packets into. The Linux kernel deals with those packets and sends them out as quickly as possible. So if you have a network card that’s too slow or something, it’s possible that it will not be able to send the packets as fast as you put them in! So you will drop packets.

I have no idea how common this is.

lost in transit

It’s possible that you send a UDP packet in the internet, and it gets lost along the way for some reason. I am not an expert on what happens on the seas of the internet, and I am not going to go into this.

lost on the way in

Okay, so a UDP packet comes into your computer. You have an application that is listening and waiting for a packet. Awesome! This packet goes into – maybe you guessed it – a socket receive buffer. How big is that buffer? Everything you might want to know about socket send and receive buffer sizes is helpfully explained in the man page for socket . Here’s the maximum receive buffer size on my computer:

man udp says that that last number from net.ipv4.udp_mem (362220) means “Number of pages allowed for queueing by all UDP sockets.” 362220 pages is 1.7GB? That’s a lot of pages! Weird. Not sure what’s up with that.

Then your application reads packets out of that buffer and handles them. If the buffer gets full, the packets get dropped. Simple!

You can see how many packets have been dropped on your machine with netstat -suna . Mine has dropped 918 packets so far apparently (“918 packet receive errors”)

This is cool! This means that if you have a machine which is trying to drop as few UDP packets as possible (for instance if you’re running statsd), then you can monitor the rate at which that machine is dropping packets!

buffers everywhere

After I published this blog post initially, @gphat and @nelhage very astutely pointed out that the OS socket send/receive buffers are not the only buffers.

EVERYTHING IS BUFFERS. Your network card has a buffer that can get full! There are a bunch of intermediate routers between your computer and my computer. All of those have buffers! Those buffers can get full! My current understanding is that most packet loss is because of full buffers one way or another.

If you’re interested in learning more details about the Linux networking stack, there is this huge post called Monitoring and Tuning the Linux Networking Stack: Receiving Data. I have not read it yet but it looks amazing.

Also everything here I said about UDP packets applies just as well to any kind of IP packet – TCP packets can get dropped just as easily, but they’ll get retried, so you’re not as likely to notice.

Типы ошибок (dlink)

Undersize — возникают при получение фрейма размером 61-64 байта.

Фрейм передается дальше, на работу не влияет

Oversize — возникают при получении пакета размером более 1518 байт и правильной контрольной суммой

Jabber — возникает при получении пакета размером более 1518 байт и имеющего ошибки в контрольной сумме

Drop Pkts — пакеты отброшенные в одном из трех случаев:

Какие пакеты входят в Drop Packets при выводе show error ports?

Переполнение входного буфера на порту

Пакеты, отброшенные ACL

Проверка по VLAN на входе

Fragment — количество принятых кадров длиной менее 64 байт (без преамбулы и начального ограничителя кадра, но включая байты FCS — контрольной суммы) и содержащих ошибки FCS или ошибки выравнивания.

Excessive Deferral — количество пакетов, первая попытка отправки которых была отложена по причине занятости среды передачи.

Collision — возникают, когда две станции одновременно пытаются передать кадр данных по общей сред

Late Collision — возникают, если коллизия была обнаружена после передачи первых 64 байт пакета

Excessive Collision — возникают, если после возникновения коллизии последующие 16 попыток передачи пакета окончались неудачей. данный пакет больше не передается

Buffer full drop что это

VID : 624 VLAN Name : tv-******
VLAN Type : Static Advertisement : Disabled
Member Ports : 25-26
Static Ports : 25-26
Current Tagged Ports : 25-26
Current Untagged Ports:
Static Tagged Ports : 25-26
Static Untagged Ports :
Forbidden Ports :

внимание, вопрос: как это лечить? может ли коммутатор без потерь работать с 10G-портами на скоростях более гигабита?

сейчас этот вилан вынесли отдельной оптикой в обход 3426, но сохраняется проблема с Drop Pkts: вечерами, при трафике на порту

1800 Mbps, имеем несколько тысяч пакетов дропов, что не совсем хорошо влияет на проходящий по нему интернет-трафик.

есть подозрение, что дропы ещё и увеличились после включения hol_prevention, но выключать пока боюсь, потому что на 3627 и 3426 уже несколько раз сталкивался с тем, что при его выключении коммутатор переставал коммутировать до перезагрузки

хм, естественно, я забыл, что включать flow control надо на обоих коммутаторах линка.

дальше ещё интереснее, выделили одному вилану отдельный десяточный порт, и все дропы перешли на этот порт. вилан принимает с десятки около 1650 мегабит трафика и заталкивает в транк из двух портов, загруженных в результате каждый на 800-830 Мбит/с на отдачу и порядка 280-340 Мбит/с на приём. на транковых портах дропов и ошибок нет

можете у себя протестировать такую ситуацию?

Это не тест, это какой-никакой продакшн =)

Отписал вам на почту немного подробностей.

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Buffer full drop что это

у этой железяки в данный момент стоит задача пробросить с 25 на 26 порт (оба 10G) один маленький виланчик на сотню-полторы мегабит мультикаста

VID : 624 VLAN Name : tv-******
VLAN Type : Static Advertisement : Disabled
Member Ports : 25-26
Static Ports : 25-26
Current Tagged Ports : 25-26
Current Untagged Ports:
Static Tagged Ports : 25-26
Static Untagged Ports :
Forbidden Ports :

внимание, вопрос: как это лечить? может ли коммутатор без потерь работать с 10G-портами на скоростях более гигабита?

сейчас этот вилан вынесли отдельной оптикой в обход 3426, но сохраняется проблема с Drop Pkts: вечерами, при трафике на порту

1800 Mbps, имеем несколько тысяч пакетов дропов, что не совсем хорошо влияет на проходящий по нему интернет-трафик.

есть подозрение, что дропы ещё и увеличились после включения hol_prevention, но выключать пока боюсь, потому что на 3627 и 3426 уже несколько раз сталкивался с тем, что при его выключении коммутатор переставал коммутировать до перезагрузки

хм, естественно, я забыл, что включать flow control надо на обоих коммутаторах линка.

дальше ещё интереснее, выделили одному вилану отдельный десяточный порт, и все дропы перешли на этот порт. вилан принимает с десятки около 1650 мегабит трафика и заталкивает в транк из двух портов, загруженных в результате каждый на 800-830 Мбит/с на отдачу и порядка 280-340 Мбит/с на приём. на транковых портах дропов и ошибок нет

можете у себя протестировать такую ситуацию?

Это не тест, это какой-никакой продакшн =)

Отписал вам на почту немного подробностей.

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Типы ошибок (dlink)

Posted on 30 июля, 2014

Buffer full drop что это

RX (recive) — принимать пакеты приходящие от клиента
TX (transmit) передавать — пакеты приходящие к клиенту

Типы ошибок:

CRC Error — ошибки проверки контрольной суммы

Undersize — возникают при получение фрейма размером 61-64 байта.

Фрейм передается дальше, на работу не влияет

Oversize — возникают при получении пакета размером более 1518 байт и правильной контрольной суммой

Jabber — возникает при получении пакета размером более 1518 байт и имеющего ошибки в контрольной сумме

Drop Pkts — пакеты отброшенные в одном из трех случаев:

Какие пакеты входят в Drop Packets при выводе show error ports?

Переполнение входного буфера на порту

Пакеты, отброшенные ACL

Проверка по VLAN на входе

Fragment — количество принятых кадров длиной менее 64 байт (без преамбулы и начального ограничителя кадра, но включая байты FCS — контрольной суммы) и содержащих ошибки FCS или ошибки выравнивания.

Excessive Deferral — количество пакетов, первая попытка отправки которых была отложена по причине занятости среды передачи.

Collision — возникают, когда две станции одновременно пытаются передать кадр данных по общей сред

Late Collision — возникают, если коллизия была обнаружена после передачи первых 64 байт пакета

Excessive Collision — возникают, если после возникновения коллизии последующие 16 попыток передачи пакета окончались неудачей. данный пакет больше не передается

Single Collision — единичная коллизия

Buffer full drop что это

Может кому будет полезно.

Мерял на асимметричном свитчинге 10G->1G

hol_prevention disabled: растут buffer full drop на входящем 10G порту, при этом затрагиваются другие порты: плавает jitter, потери, размер буфера

hol_prevention enabled: растут tx hol drop на исходящем 1G порту, другие порты не затрагиваются. но эффективный размер буфера 64k!

В общем, я расстроен.

Забыл ещё написать о том, что у длинка странное представление о том, что такое head-of-line blocking: т.к. при тесте использовались всего два порта и трафик шёл исключительно по направлению 10G->1G ни о каком HOL’е (в его классическом понимании) речи быть не может. Т.е. tx hol drops, как минимум, включает в себя ошибки «на egress порту кончился буфер».

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Buffer full drop что это

у этой железяки в данный момент стоит задача пробросить с 25 на 26 порт (оба 10G) один маленький виланчик на сотню-полторы мегабит мультикаста

VID : 624 VLAN Name : tv-******
VLAN Type : Static Advertisement : Disabled
Member Ports : 25-26
Static Ports : 25-26
Current Tagged Ports : 25-26
Current Untagged Ports:
Static Tagged Ports : 25-26
Static Untagged Ports :
Forbidden Ports :

внимание, вопрос: как это лечить? может ли коммутатор без потерь работать с 10G-портами на скоростях более гигабита?

сейчас этот вилан вынесли отдельной оптикой в обход 3426, но сохраняется проблема с Drop Pkts: вечерами, при трафике на порту

1800 Mbps, имеем несколько тысяч пакетов дропов, что не совсем хорошо влияет на проходящий по нему интернет-трафик.

есть подозрение, что дропы ещё и увеличились после включения hol_prevention, но выключать пока боюсь, потому что на 3627 и 3426 уже несколько раз сталкивался с тем, что при его выключении коммутатор переставал коммутировать до перезагрузки

хм, естественно, я забыл, что включать flow control надо на обоих коммутаторах линка.

дальше ещё интереснее, выделили одному вилану отдельный десяточный порт, и все дропы перешли на этот порт. вилан принимает с десятки около 1650 мегабит трафика и заталкивает в транк из двух портов, загруженных в результате каждый на 800-830 Мбит/с на отдачу и порядка 280-340 Мбит/с на приём. на транковых портах дропов и ошибок нет

можете у себя протестировать такую ситуацию?

Это не тест, это какой-никакой продакшн =)

Отписал вам на почту немного подробностей.

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Buffer full drop что это

Помогите, пожалуйста, разобраться со следующей проблемой.

При подключении lan-кабеля в роутер (интернет > роутер > компьютер по кабелю), периодически пропадает интернет, на стороне провайдера видны ошибки и т.д., на какое-то время помогает перезагрузка роутера.

Казалось бы, очевидно проблема в роутере, но.
Проблема началась с роутера TP-LINK TL-WR841N, отдал его другу, и взял Cisco LinkSys EA3500 (работающий на другом провайдере у друга без проблем вообще), и опять та же проблема. Но только LinkSys не требовалось перезагружать, достаточно передёрнуть кабель (его видят ноут, телефоны и т.д., а интернета нет, т.е. роутер вроде как не зависает).

Ок, взял у соседа другой TP-LINK, ему отдал свой Cisco. У соседа целый день всё ок, у меня те же проблемы.

Подключаю lan-кабель напрямую в компьютер — ни ошибок, ни проблем.

Провайдер соответственно не может выяснить в чём проблема, т.к. напрямую всё ок.

Не знаю связанно ли это или нет, но проблемы начались после полной смены сетапа (был интел, стал амд). Может ли компьютер (его сетевая карта) как-то влиять на роутер?

Даже не знаю за что зацепиться, куда смотреть. Сейчас основной роутер это Cisco LinkSys EA3500. Есть какие-то мысли на этот счёт?

  • Профіль
  • Цитата
  • Профіль
  • Цитата
  • Профіль
  • Цитата
  • Профіль
  • Цитата

У друга и соседа один и тот же провайдер, не такой как у меня.

Отправлено спустя 1 минуту 52 секунды:

Во время пропадания интернета (не зависания роутера/ов) по вайфаю интернет тоже пропадает, хотя все устройства видят роутер/ы.

Отправлено спустя 29 секунд:

  • Профіль
  • Цитата
  • Профіль
  • Цитата
  • Профіль
  • Цитата

Уверен, у него проц не более 600-800Мгц, и скорее 1 ядро всего, если запросы летят напрямую к цпу ( широковещалки броадкаста или еще какая дрянь ) то в лучшем случае он будет заметно плохо жевать трафик, в худшем повесится, и скорее повесится еще и от перегрева.

Увы я уважаю только среднецоновой и выше сегмент микротик, циско, джунипер или полноценный боард сервер на линукс etc., с нормальными сетевыми.
Линксис — огрызок циски, не более.

Отправлено спустя 1 минуту 15 секунд:

А по arp -a выдаёт 11 адресов.

тут бы глянуть что от них летит еще

Отправлено спустя 3 минуты 16 секунд:
Попросите КЦ провайдера соединить с тех.отделом.
Тех.отдел попросите переселить вас в другой сегмент сети, зачастую в другой VID, сообщите то что описали тут.
Как подтвердят что сделали — пробейте снова arp -a, гляньте правда ли, или врут.
Если выполнили требования — наблюдайте за инетом.
Самый простой способ проверить что не так, если поддержка у провайдера адекватна.

Отправлено спустя 7 минут 18 секунд:
Ах да, еще момент, вы уверены что вешается роутер не от вашего ПК?
Банальная проверка на вирусню с помощью cureit!, и сброс сетевого стека, в командной строке:
netsh winsock reset
netsh int ip reset

Думаю не повредят, только после команд настроек на сетевой не будет, так что если у вас статический IP их следует записать.

  • Профіль
  • Цитата
  • Профіль
  • Цитата
  • Профіль
  • Цитата
  • Профіль
  • Цитата

papamama: Помогите, пожалуйста, разобраться со следующей проблемой.

При подключении lan-кабеля в роутер (интернет > роутер > компьютер по кабелю), периодически пропадает интернет, на стороне провайдера видны ошибки и т.д., на какое-то время помогает перезагрузка роутера.

Какие ошибки?
Для понимания:
CRC Error 7 Excessive Deferral 0
Undersize 0 CRC Error 0
Oversize 0 Late Collision 0
Fragment 1 Excessive Collision 0
Jabber 0 Single Collision 0
Symbol Error 4 Collision 0
Buffer Full Drop 101629 STP Drop 18065
ACL Drop 0 HOL Drop 0
Multicast Drop 0
VLAN Ingress Drop 22332842
Invalid IPv6 0
STP Drop 6595
Storm and FDB Discard 0
MTU Drop 0

Вот их сколько разных, и это только малая капля на недосвитче Dlink, стянул с первого попавшегося под руку коммутатора статистику рандомного порта.
Самые распространенные:
CRC — ошибки контрольной суммы, пакеты бьются не долетая к вас/ от вас
Fragment — то же самое, но когда идет дробление больших пакетов на более мелкие, мало вероятно
Collision — столкновение пакетов из-за несогласованности меж отправитиелем и получателем
acl drop — отброс пакета согласно установленных «правил» свитча, это настройка провайдера
STP drop — дропы лишних stp пакетов, когда STP выключен, или пакеты STP не распознаны
Storm and FDB Discard — дропы согласно встроенных механизмов защиты коммутатора от шторма и петли
MTU drop — дропы из-за несогласованности MTU

Так вот, если прут CRC, Fragment, Collision, просим провайдера проверить длину и целостность кабеля, при наличии норм коммутаторов они это могут, и просим назвать сколько.
Если кабеля больше 70м, не исключено что просто не пробивает, или плохой кабель, просим заменить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *