Итак, один из моих клиентов настроил один из своих коммутаторов, и полученная конфигурация привела к несоответствию дуплексного режима между коммутатором и хостом Linux.
Мы устранили несоответствие дуплексного режима, но есть ли простой способ сбросить счетчики ошибок на интерфейсе без перезапуска системы?
eth0 Link encap:Ethernet HWaddr 00:nn:nn:nn:nn:nn
inet addr:192.168.97.166 Bcast:192.168.97.167 Mask:255.255.255.252
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:630331763 errors:1 dropped:0 overruns:0 frame:0
TX packets:676081436 errors:1971815 dropped:0 overruns:68637 carrier:1903180
collisions:7649984 txqueuelen:1000
RX bytes:2067682611 (1.9 GiB) TX bytes:1942809411 (1.8 GiB)
это не предназначено и не предполагается сделать. Вы можете выгрузить и снова загрузить сетевой драйвер, если он загружен как модуль:
ifconfig ethX down; rmmod ethX; insmod ethX; ifconfig ethX
В любом случае произойдет сбой в сети, и возникнет риск, если вы не сможете снова его задействовать.
Вы можете сбросить статистику порта коммутатора и проверить наличие новых ошибок. Или сохраните это текущее число и сравните с ним вместо нуля
Вы видели эту статью?
http://www.ducea.com/2006/09/08/resetting-ifconfig-counters/
Он предполагает, что выгрузка модуля сетевого драйвера и его загрузка сбросят счетчики, и что, если у вас есть модуль, статически связанный в ядре, нет другого способа, кроме его перезагрузки.
Статья предлагает обоснование.
Измените размер кольцевых буферов, и статистика будет сброшена без простоев.
ethtool -G eth1 rx 511
ethtool -G eth1 rx 4096
(RHEL 6.5)