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