Назад | Перейти на главную страницу

Высокая процентная загрузка ЦП при высокой сетевой нагрузке на ixgbe

У нас есть сетевая карта Intel 82598EB 10GBE. Сетевая нагрузка состоит из множества пакетов UDP небольшого размера. Чтобы смоделировать DDoS, с другого сервера мы отправили небольшой UDP-пакет со скоростью ~ 100 тыс. Пакетов в секунду (всего лишь несколько Мбит полосы пропускания). Когда мы это делаем,% soft CPU загружается до 100%, что делает сервер непригодным для использования и отбрасывает пакеты.

Ядро 3.8.5, ixgbe 3.13.10. Мы уже сделали некоторые настройки для снижения частоты прерываний (rx-usecs: 300), но не решили проблему. Есть ли способ проверить, почему softirq использует так много ЦП, даже если частота прерываний невысока?

Спасибо!

Я знаю, что это старое; но я в основном отвечаю пользователям, которые приходят сюда с похожими проблемами.

Есть несколько способов проверить прерывания:

  • cat /proc/interrupts записывает прерывания на ЦП и устройство ввода-вывода.
  • grep cpu /proc/stat столбцы 6 и 7 содержат irq и softirq статистика.
  • top и htop; наблюдать si и если вы измените htop на расширенный режим отображения для процессоров, вы увидите si и hi.
  • Чтобы получить исторические данные, установите sysstat; чтобы получить конкретные данные о прерывании, см. sar -I XALL.
  • Вы также можете использовать perf.

Поскольку это, скорее всего, проблема с драйвером (или сетевая карта не работает), я бы проверил наличие overruns или errors по интерфейсу; если их нет, посмотрите, есть ли обновление драйвера.