Как я могу оптимизировать сервер для приложения с низкой задержкой [закрыто]

У меня есть приложение, чувствительное к задержкам. Хотя мне важна пропускная способность, для меня важнее чрезвычайно низкая задержка.

Пожалуйста, предложите, как я могу оптимизировать свой сервер для достижения минимально возможной задержки, то есть минимально возможного времени ответа на запрос, полученный через сетевой интерфейс (или карту inifiniband), и опубликованный ответ.

Первоначальные мысли:

  • Прикрепите всю активность операционной системы к набору ядер и посвятите другие мои (не знаю, как это лучше сделать)
  • Установка overcommit_memory не t overcommit

Статья Оптимизация серверов и процессов для повышения скорости кажется хорошим началом, но другие указания приветствуются.

Любые другие предложения приветствуются

1
задан 23 March 2011 в 05:18

2 ответа

Прежде всего, я думаю, вам следует установить и использовать ядро ​​linux-rt. Это ядро ​​исправлено и позволяет прервать почти все ядро, за исключением нескольких очень маленьких областей кода («критические области raw_spinlock»). Это делается путем замены большинства спин-блокировок ядра мьютексами, которые поддерживают наследование приоритетов, а также путем перемещения всех прерываний и программных прерываний в потоки ядра.

Вытеснение - это акт временного прерывания задачи, выполняемой компьютерной системой, без необходимости ее взаимодействия и с намерением возобновить задачу в более позднее время.

Читать Обзор преимущественного прерывания в реальном времени . Это позволит вам понять, как все работает, что позволит вам точно настроить ядро ​​для вашего конкретного приложения.

Существует также RTLinuxFree , разработанная Wind River Systems, у которой также есть коммерческий аналог, если у вас есть деньги.

Для linux-rt я рекомендую прочитать RT Wiki

Может быть, ваше приложение поддерживает RTAI ?

0
ответ дан 23 March 2011 в 05:18

Возможно, важно иметь аппаратную тактовую частоту? Это может повлиять на переключение состояний питания ACPI, например, если ожидается, что ваша машина будет находиться в режиме ожидания в течение некоторого времени и должна быстро отвечать на сетевые запросы. Или, если вам нужно (очень) точное время и запись, скажем.

См. текст ссылки для дальнейшего обсуждения. Я не уверен, насколько последние, но опция аппаратных часов была все еще там в прошлый раз, когда я проверял (приблизительно 6 месяцев назад).

0
ответ дан 23 March 2011 в 05:18

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

Похожие вопросы: