В нашей производственной среде возникла странная проблема: задержка выше при низком трафике.
Затем я создаю Tcp Server и Client с Netty4 и отправляю данные по одному соединению. Каждый запрос составляет 100 КБ. Задержка в qps (запрос в секунду) = 1 намного выше, чем в в qps = 100.
Условия:
- Задержка PING между сервером и клиентом составляет около 2 мс.
- опция TCP_NODELAY включена с обеих сторон.
- на стороне сервера, он будет находиться в режиме ожидания в течение 20 мс (смоделируя службу prod).
Результат теста:
- <24 мс при qps = 100 (100 КБ на запрос); </li>
- > 35 мс, когда qps = 1 (100 КБ на запрос);
- <23 мс, когда qps = 1 (1 КБ на запрос); </li>
Задержка с другим размером пакета, когда qps = 1
- Пинг laltency: 1.66ms
- 100 кБ - 39 мс
- 50 кБ - 32 мс
- 20 кБ - 27,38 мс
- 17 кБ - 26,15 мс
- 15 кБ - 25,9 мс
- 10 кБ - 22,62 мс (что приемлемо)
Я бы хотел выяснить причину плохой работы в условиях низкого трафика. Интересно, это вызвано некоторыми опциями Tcp.