Я пытаюсь решить проблему с сетью на одном сервере. Я слежу за этой машиной с помощью нескольких мониторов и вижу, что время от времени частота ошибок ping подскакивает до 5/10%.
Я работаю на ubuntu и вижу, что вывод ethtool -S eth0 показывает положительные значения для rx_queue _ * _ csum_errboth rx_fifo_errors (несколько тысяч).
Что на самом деле отслеживают эти счетчики, есть ли какие-нибудь хорошо известные причины, по которым они не равны 0?
rx_fifo_errors
= Общее количество удалений rx_queue _ * _
rx_queue_*_drops
= Количество отброшенных пакетов в очереди
Похоже, что прерывания RX недостаточно быстро распределяют буферы, что приводит к тому, что адаптер отбрасывает пакеты.
Проверьте и увеличьте кольцевой буфер.
# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
Вы можете установить свой "Current Hardware Settings
" для "RX
"до предела, указанного в"Pre-set maximums
"
# ethtool -G eth0 rx 4096
НОТА: Этот параметр будет не пережить перезагрузку. Вы можете использовать rc.local
(или что-то подобное)