понедельник, 24 февраля 2014 г.

Растущее количество dropped пакетов в ifconfig

Настраивая новую систему мониторинга я заметил, что график ошибок сетевого адаптера одного из серверов показывает рост значения RX packets: dropped.

# ifconfig em2
em2       Link encap:Ethernet  HWaddr 00:25:90:d0:df:18  
          inet addr:xx.xx.xx.xx  Bcast:xx.xx.xx.255  Mask:255.255.255.0
          inet6 addr: fe80::225:90ff:fed0:df18/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:180047091 errors:0 dropped:31438 overruns:0 frame:0
          TX packets:165010458 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:58487975592 (58.4 GB)  TX bytes:192626658770 (192.6 GB)
          Memory:f7100000-f7180000

Это может говорить о том, что система не успевает забирать пакеты из буфера приема сетевого адаптера. Хотя в этом случае должно расти и значение RX packets: overruns.

Поиск в гугле вывел на возможное объяснение такому поведению. Такое поведение счетчика ошибок поясняется цитатой ниже

Beginning with kernel 2.6.37, it has been changed the meaning of dropped packet count. Before, dropped packets was most likely due to an error. Now, the rx_dropped counter shows statistics for dropped frames because of:

  • Softnet backlog full
  • Bad / Unintended VLAN tags
  • Unknown / Unregistered protocols
  • IPv6 frames when the server is not configured for IPv6

If any frames meet those conditions, they are dropped before the protocol stack and the rx_dropped counter is incremented.

Вариант с Softnet backlog full я исключил сразу, поскольку ошибки распределены более-менее равномерно и присутствуют даже при траффике менее 100 пакетов в секунду.

Для проверки остальных пунктов на сутки был запущен tcpdump на проблемном интерфейсе em2.



По истечении суток показания мониторинга подтвердили теорию - ошибки при запущенном tcpdump не появляются, а следовательно можно не дергать сервер.

Комментариев нет:

Отправить комментарий