1

Сеть на моей работе насчитывает около 40 компьютеров и довольно много принтеров. Когда много людей работают, сеть будет работать медленно.
Я могу проверить пинг между моим компьютером и маршрутизатором, и он будет продолжать расти, иногда до такой степени, что истекает время ожидания.
Маршрутизатор, который мы используем, использует Ubuntu на процессоре Atom и имеет 4 ГБ оперативной памяти.

Когда сеть замедляется, процесс Ksoftirq будет использовать большую часть, если не всю вычислительную мощность. Я обнаружил, что Ksoftirq - это процесс, который обрабатывает запросы IRQ . Также, когда сеть замедляется, я перехватил пакеты с маршрутизатора и с помощью tshark и посмотрел на него с помощью wireshark на моем ноутбуке. При захвате показывается много пакетов с TCP Dup ACK и TCP Retransmissions. Назначения повторных передач TCP Dup и TCP - для большинства компьютеров в сети, но есть некоторые, которые намного больше, чем другие.

Чем может быть вызвана эта проблема?

3 ответа3

3

Вполне вероятно, что Ethernet-карта вашего маршрутизатора отстой или неправильно настроена для такого использования.

Современные гигабитные Ethernet-карты серверного (или маршрутизаторного) класса предоставляют такие услуги, как объединение прерываний и большая разгрузка приема (LRO), чтобы предотвратить перегрузку хост-процессора пакетными прерываниями. Другие функции разгрузки, такие как Transmo Segmentation Offload (TSO) и аппаратное контрольное суммирование, также помогают сохранять хост-процессор менее загруженным, но не обязательно связаны с прерываниями.

Убедитесь, что ваш Ethernet-адаптер способен на эти вещи, и что у вас все они полностью включены. Если он не способен объединять прерывания и LRO, рассмотрите возможность обновления до хорошего сетевого адаптера Ethernet серверного класса.

2

Короткий ответ на ваш вопрос: да, это признаки того, что маршрутизатор не может справиться с нагрузкой, которую он запрашивает. Процессор тратит большую часть своего времени на выяснение того, как обрабатывать принятые пакеты, а операции более высокого уровня истощаются.

Очевидное решение состоит в том, чтобы заменить маршрутизатор на более мощный аппаратный. Однако может быть возможно оптимизировать конфигурацию маршрутизатора.

Например, скажем, у вас есть несколько портов, которые заблокированы. Если вы проверяете каждый заблокированный порт с помощью правила, то по каждому из этих правил придется проверять большой объем трафика. Если 95% трафика приходится на порт 80, добавление правила "allow" вверху позволит большей части трафика пропустить большинство правил. Аналогично, добавление правила «принять, если оно является частью установленного соединения» сверху, если цепочка ввода может помочь.

Маршрутизатор может также либо нехватки памяти, либо не хватает слотов подключения. Когда маршрутизатор находится вне слотов подключения, он откажется устанавливать новые подключения. Когда все плохо, видеть , если net.netfilter.nf_conntrack_count близок к net.netfilter.nf_conntrack_max Если это так, и у вас есть память, поднимите предел. Если у вас нет памяти, вы можете немного уменьшить время ожидания.

0

Если вы используете маршрутизатор Wi-Fi, то, вероятно, вы страдаете от переполнения буфера. Это временное состояние, которое исправляется путем включения питания маршрутизатора.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .