Мигрируя со старого сервера на новый, после настройки всех служб я замечаю большие пропущенные rx-пакеты в моей сетевой плате:
$ ifconfig eth2 | grep 'RX.*drop'
RX packets:2059646370 errors:0 dropped:7142467 overruns:0 frame:0
Но /sys/class/net/eth2/statistics/rx_dropped
ничего не показывать
$ cat /sys/class/net/eth2/statistics/rx_dropped
0
Затем я вижу, что rx_missed_errors
:
$ cat /sys/class/net/eth2/statistics/rx_missed_errors
7142467
Как я могу устранить неполадки и выяснить причину rx_missed_errors
?
Я использую Ubuntu 12.04.5 LTS, с:
$ ethtool -i eth2
driver: ixgbe
version: 3.15.1-k
firmware-version: 0x800003e1
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
linux
linux-networking
cuonglm
источник
источник
Ответы:
Большинство драйверов взаимозаменяют использование счетчиков
rx_missed_errors
,rx_fifo_errors
иrx_over_errors
, но, как правило, они устанавливают один или несколько из этих счетчиков на счетчик MPC (счетчик пропущенных пакетов), который увеличивается при поступлении пакета и теряется, поскольку очередь FIFO карты заполнена.Это случай для драйвера ixgbe:
Так что
rx_missed_errors
для ixgbe это MPC.На веб-сайте Intel есть отличная запись в блоге, в которой рассказывается о причинах падения MPC с использованием замечательной аналогии: https://communities.intel.com/community/tech/wired/blog/2009/11/04/how-the-kitchen -sink-и-статистик объясни и лечите сброшенный-пакеты
Кроме того, убедитесь, что между вашей сетевой платой и коммутатором не совпадает скорость и дуплекс. Если ваш коммутатор считает, что ваш сетевой адаптер работает быстрее, чем он есть на самом деле, у вас будут проблемы со стороны сетевого адаптера.
И, наконец, может помочь увеличение размера кольцевого буфера вашей сетевой карты, если основной причиной станет производительность перед очередями. Вы можете найти максимальное значение с помощью,
ethtool -g eth2
а затем установить его с помощьюethtool -G
.источник