Я знаю, что Linux создан для многопользовательских/одновременных процессов, но на корпоративном уровне многие из них используются для отдельных (но больших) приложений, поддерживающих внутреннюю службу, которая обслуживает лишь очень небольшое количество клиентов.
В таком случае, как нам следует настроить систему или ядро (в частности, Red Hat Linux, Fedora, CentOS) для оптимизации сценария? Чтобы минимизировать задержку, уменьшая переключение контекста, с очень малым количеством локальных дисковых операций ввода-вывода.
Длительность сеанса может быть постоянной (так как количество клиентов невелико), объем обмена данными небольшой, но очень частый, например, от 1 до 2 тысяч сообщений в секунду, размер от 40 до 100 байт.
решение1
Настройка производительности — это как черная магия, так и наука. Об этом написаны целые книги, в том числе довольно много как частьдокументация поставщика
Вы начинаете с хорошего мониторинга, добавляете нагрузку, получаете базовый уровень и только потом начинаете регулировать и наблюдать, дала ли ваша регулировка желаемый результат или нет.
Промойте и повторяйте, пока не получите оптимальный результат.
Вы не упоминаете свой основной релиз RHEL или CentOS, но все они также включают автоматическую настройку, например, с помощью демона tuned
. Можно выбрать предопределенные профили производительности tuned-adm list
и затем активировать с помощью tune-adm profile <profile-name>
.
Для вашего варианта использования профиль RHEL 7latency-performance
похоже на то, что вам может пригодиться:
latency-performance
Профиль сервера, ориентированный на снижение задержки. Этот профиль рекомендуется для чувствительных к задержке рабочих нагрузок, которые выигрывают от настройки c-state и повышенной эффективности TLB прозрачных огромных страниц. Этот профиль отдает предпочтение производительности, а не экономии энергии, устанавливаяintel_pstate
иmax_perf_pct=100
. Он включает прозрачные огромные страницы, используетcpupower
для установки регулятора производительности cpufreq и запрашиваетcpu_dma_latency
значение1
.
Для более общей настройки LinuxБрэндан Греггсоздал ряд наглядных диаграмм того, какой инструмент использовать в той или иной части вашей системы, которые представляют собой действительно хорошие шпаргалки: