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

Настройка Red Hat Linux для одного приложения с несколькими TCP-клиентами

Я знаю, что 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 для мониторинга:

И тесно связанные:

Превратите наблюдения в настройку с помощью: