Высокая нагрузка CPU и задержка пакетов

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Вопрос:

Высокая нагрузка CPU и задержка пакетов, при небольшом канале и небольшом количестве пользователей. В чем причина?

Ответ:
Многие сетевые карты поддерживают режим паузы. 
В случае, если канал перегружен, коммутатор или маршрутизатор посылает специальный пакет для паузы tx или rx, либо создает искусственную Ethernet коллизию.
Сетевая карта это обнаруживает и задерживает отправку пакета, при этом висит в цикле, из-за этого видимая нагрузка на процессор.
Как только коммутатор сообщает, что «все ОК», пакет отправляется, из-за этого происходит задержка пакета.
Можно посмотреть эту возможность в сетевой карте ethtool -a Eeth2 и можно отключить ethtool -A Eeth2 rx off tx off.
При отключении паузы пакет будет отправлен в любом случае, даже если противоположная сторона не может принять. Это приведет к нормализации времени задержки, но к потери пакетов.
Для того чтобы полностью решить проблему канала, необходимо решать задачу на уровне Ethernet оборудования.

ics_tune.sh

#!/bin/bash
if [ "$1" = "firewall.sh" ] ; then
ethtool -A Eeth2 rx off tx off;
fi
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.