🛠️ Устранение неполадок медленного сетевого соединения или тайм-аутов подключения в Linux

by itisgood
Устранение неполадок в медленной сети или отбрасывание сетевых пакетов может быть непростым делом.
В дополнение к замедлению сетевого взаимодействия могут наблюдаться и другие симптомы, такие как:
  • Попытки подключиться к серверу с помощью ssh и / или sftp приводят к тайм-ауту или задержке ответа.
  • Когда нагрузка на сеть повышается, наблюдается большое количество повторных передач в сети.
  • В выходных данных команды ifconfig eth [x] может наблюдаться большое количество отбрасываний пакетов.

Некоторые другие симптомы также включают в себя:

– Вывод команды: netstat -s показывает увеличивающиеся значения следующей статистики: (запуская несколько раз  «netstat -s»):

13336 packets pruned from receive queue because of socket buffer overrun
516 times the listen queue of a socket overflowed
516 SYNs to LISTEN sockets ignored
2040077 packets collapsed in receive queue due to low socket buffer
TCPBacklogDrop: 744165
– Вывод команды: ethtool -S eth [x] показывает увеличивающиеся значения счетчика: «rx_fw_discards»:
rx_fw_discards: 4493

Причины снижения производительности сети

Там может быть несколько причин снижения производительности сети.

Вот некоторые из возможных причин:

  • Сеть сильно загружена, до ее максимальной емкости и имеется перегрузка.
  • Настроенных буферов приема недостаточно для загрузки сети.
  • Есть сбросы пакетов из-за ошибок на физическом уровне.

Устранение неполадок низкой производительности сети

1. Проверьте пропускную способность сети с помощью инструмента iperf и выясните, приближается ли использование пропускной способности сети к максимальной.

2. Установите значения параметров сети соответствующим образом, чтобы поддерживать максимальную пропускную способность сети.
Найдите значение задержки полосы пропускания (BDP) и соответственно установите размер сетевого буфера.
Он рассчитывается как произведение пропускной способности канала и времени приема-передачи.
Например:
– Для сети со скоростью 1 Гбит / с и времени отключения по рейту 0,1 с BDP = (0,1 * 10 ^ 9) / 8.
В такой сети установите следующие значения параметров в файле: /etc/sysctl.conf
# vi /etc/sysctl.conf
net.core.rmem_max = 12500000
net.core.wmem_max = 12500000
net.ipv4.tcp_rmem = 4096 87380 12500000
net.ipv4.tcp_wmem = 4096 65536 12500000
И увеличьте также следующие параметры:
# vi /etc/sysctl.conf
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_max_syn_backlog = 4096
И затем выполните команду:

# sysctl -p

а) Для обоих изменений нет необходимости перезагрузки системы.

б) После внесения этого изменения необходимо отслеживать выходные данные команды «netstat -s» и проверять, увеличиваются ли следующие счетчики:

packets pruned from receive queue because of socket buffer overrun
times the listen queue of a socket overflowed
SYNs to LISTEN sockets ignored
packets collapsed in receive queue due to low socket buffer
TCPBacklogDrop

3. Увеличьте размер буфера RX Ring сетевого адаптера.

Существует компромисс при установке этого числа.

Более высокое значение может задержать обработку пакетов, а более низкое значение может вызвать отбрасывание пакетов, когда соответствующий драйвер сталкивается с задержкой при обработке входящих пакетов.

# ethtool -G eth[x] rx 512

б) Чтобы сделать это изменение постоянным, добавьте в файл  /etc/sysconfig/network-scripts/ifcfg-eth [x] следующее:

# vi /etc/sysconfig/network-scripts/ifcfg-eth[x]
ETHTOOL_OPTS="-G rx 512"

 

You may also like

Leave a Comment