Понимание max-concurrent-соединений клиент-сервер и состояния TIME_WAIT

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

Мой сценарий заключается в том, что у меня есть сервер, подключенный к Интернету, который должен обрабатывать тысячи соединений в секунду (он предоставляет некоторый тип API). Я наблюдаю, что подключения к серверу вообще возможны, но time_connect и time_total (с помощью curl) достигают от 0.009 в 0.526 для бывших и 0.134 в 0.926 для последнего. Я также наблюдаю огромное количество соединений в TIME_WAIT состояние - вокруг 32,000+,

Итак, мой первый вопрос: сколько одновременных соединений (с настроенным по умолчанию дистрибутивом Debian) сервер может обработать в течение секунды, минуты или часа. Существует ли какая-то "простая" формула для расчета логического предела возможных одновременных соединений.

Кроме того, в будущем я могу не просто обрабатывать входящее соединение непосредственно на самом сервере, но мне, возможно, придется перенаправить его на прокси-сервер, получить результат и вернуть его. Я даже думаю об использовании механизма балансировки нагрузки nginx (при необходимости). Поэтому второй вопрос заключается в том, чтобы при наличии такого прокси / балансировки / переадресации нагрузки формула была бы изменена?

Мой последний вопрос: какие есть альтернативы для увеличения числа одновременных соединений, например,

  • добавить еще один сервер для домена (что будет вдвое больше правильных одновременных подключений?),
  • уменьшить время, проведенное в TIME_WAIT (это поможет и как),
  • ...

Большое спасибо за любую помощь или любую ссылку!

0 ответов

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