Есть ли еще возможность использовать irqbalance на современном оборудовании?

Этот вопрос задавался ранее, но я считаю, что мир достаточно изменился, чтобы его можно было задавать снова.

Имеет ли irqbalance какое-либо применение в современных системах, где у нас есть процессоры с поддержкой NUMA с разделением памяти между ядрами?

Бег irqbalance --oneshot --debug показывает, что виртуальный гость в современной среде VMware ESXi разделяет узлы NUMA между ядрами.

# irqbalance --oneshot --debug 3
Package 0:  numa_node is 0 cpu mask is 0000000f (load 0)
    Cache domain 0:  numa_node is 0 cpu mask is 0000000f  (load 0)
            CPU number 0  numa_node is 0 (load 0)           
            CPU number 1  numa_node is 0 (load 0)
            CPU number 2  numa_node is 0 (load 0)
            CPU number 3  numa_node is 0 (load 0)

В этом случае irqbalance обнаружит, что он работает в системе NUMA, и завершит работу. Это портит наш мониторинг процессов.

Должны ли мы смотреть на запуск numad вместо несбалансированности в таких системах?

Это в основном интересно для виртуализированных серверов VMware.

1 ответ

Решение

Вот один ответ от техника из RedHat. Хотя я верю, что большинство корпоративных устройств поддерживают NUMA. И, насколько я знаю, VMware также будет пытаться разместить ваши виртуальные машины на том же узле NUMA, если его конфигурация процессора соответствует размеру.

Опыт (особенно в отношении VMware) будет принята с благодарностью.

Это верно "потому что" современных серверов. Имейте в виду, что Multi-CPU/Muli-Core - это не то же самое, что NUMA. Существует много систем с несколькими процессорами и ядрами, которые не имеют NUMA.

Прежде чем читать мое объяснение ниже, пожалуйста, прочитайте документ IRQ Affinity выше, а также следующие руководства:

Руководство по настройке производительности RHEL 6

Настройка производительности с низкой задержкой для RHEL 6

Есть все, что читал? Отлично, ты не должен больше ничего слышать от меня!;-) Но на случай, если вы были нетерпеливы, вот почему вы хотите их...

IRQbalance предотвращает резервное копирование всех запросов IRQ на одном процессоре. Я видел, что многие системы с 4+ ядрами ЦП работают медленно, потому что все процессы на разных ЦП ожидают ЦП 0 для обработки запросов IRQ сети или хранилища. CPU 0 выглядит очень, очень загруженным, все остальные процессоры не заняты, но приложения работают очень медленно. Приложения работают медленно, потому что они ожидают своих запросов ввода-вывода от CPU 0.

IRQbalance пытается сбалансировать это разумным образом для всех процессоров и, по возможности, помещает обработку IRQ как можно ближе к процессу. Это может быть одно и то же ядро, ядро ​​на том же кристалле, использующее тот же кеш, или ядро ​​в той же зоне NUMA.

Вы должны использовать irqbalance, если:

Вы вручную прикрепляете свои приложения /IRQ к конкретным ядрам по очень веской причине (низкая задержка, требования в реальном времени и т. Д.)

Виртуальные гости. Это на самом деле не имеет смысла, потому что если вы не прикрепите гостя к конкретным процессорам и IRQ, а также к выделенному оборудованию сети / хранилища, вы, скорее всего, не увидите преимуществ, которые вы бы получили на голом железе. Но ваш хост KVM/RHEV ДОЛЖЕН использовать irqbalance, numad и настроенный.

Другими очень важными инструментами настройки являются настроенные профили и numad. Читайте о них! Используй их!

Numad похож на irqbalance в том, что он пытается убедиться, что процесс и его память находятся в одной и той же зоне numa. Со многими ядрами мы видим значительное снижение задержек, что приводит к гораздо более плавной и надежной работе под нагрузкой.

Если вы опытный, усердный и регулярно проводите мониторинг или имеете очень предсказуемую рабочую нагрузку, вы можете повысить производительность, закрепив процессы /IRQ вручную на процессорах. Даже в этих ситуациях irqbalance и numad очень близки к совпадению. Но если вы не уверены или ваша рабочая нагрузка непредсказуема, вы должны использовать irqbalance и numad.

Другие вопросы по тегам