Настройка параметров ОС для улучшения задержки

Мы пытаемся улучшить среднюю задержку прокси-приложения Java.
Приложение Java получает сообщение от клиента и передает его на нужный сервер.
Протокол двоичный, асинхронный.

Топология:

Client (1) - Java proxy (2) - Server (3)

Поток вызовов

(1)-(2)-(3)-(2)-(1)

Требование составляет 2 мс средней задержки для одного направления направления для прокси Java.

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

1 client -> Java proxy latency overhead = 6 ms.
2 clients -> Java proxy latency overhead = 3 ms.
4 clients -> Java proxy latency overhead = 1.5 ms.

С другой стороны, мы должны соблюдать требования к задержке даже с одним клиентом.

То же самое поведение мы наблюдаем, если мы заменим Java-реализацию прокси на реализацию Erlang.

Можем ли мы сделать что-нибудь для низкоуровневой настройки ОС?
Хост прокси Java - это 2 процессора Nehalem X5550 2,67 ГГц, всего 16 HW потоков; Red Hat Enterprise Linux Server, выпуск 5.6

2 ответа

Перед тем, как вы проведете тестирование, я должен убедиться, что JVM прогрета и установлена ​​в режиме реального времени. Вы должны быть в состоянии достигнуть задержки ниже 0,1 мс сверх задержки сети.

Ваш Java прокси блокируется, пока он ожидает ответа Сервера? Это объясняет времена, которые вы видите.

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