Я пытаюсь устранить спорадические проблемы с производительностью в нашей производственной среде. У нас есть http-интерфейс, который указывает на бэкэнд с 8 серверами. В журналах http HAProxy есть сотни успешных запросов (~ 0,1% запросов) с необычным временем. Эти тайминги запросов колеблются около 1000 мс, 3000 мс, 7000 мс, 15000 мс и 31000 мс. Время в основном исходит от Tc столбец, который представляет собой время, необходимое для установления соединения с серверной частью (есть также несколько запросов, которые занимают 63000 мс в Tw времени и повторите попытку). Поправьте меня, если я ошибаюсь, но я считаю, что эти тайминги являются шаблоном, который используется в экспоненциальной задержке повторной передачи TCP: 2 ^ n - 1. Есть ли что-нибудь еще, что могло бы объяснить эти задержки?
У нас довольно высокий тайм-аут подключения конфигурация 10 минут, который я хотел бы изменить на 5 секунд. Меня беспокоит то, что случится с этими странными запросами, которые имеют длительное время Tc. Будет ли запрос возвращаться с ошибкой, или HAProxy будет использовать другое соединение, возможно, с другим сервером (у нас включена повторная отправка)? Мы можем видеть эту проблему только в нашей производственной среде, и до сих пор нам не удалось создать нагрузочный тест в нашей тестовой среде, который бы воспроизвел проблему. В производственной среде настроена проверка работоспособности http с 3 попытками с интервалом в 2 секунды. На самом деле у нас бывает несколько десятков неудачных проверок работоспособности в день, но они восстанавливаются каждый раз при первой попытке через 2 секунды, и сервер никогда не снижается.
ОБНОВЛЕНИЕ 24.05.2017: Мы уменьшили тайм-аут подключения к 5 секунд, что очень помогло. Однако есть запросы, которые достигают таймаута и в конечном итоге успешно выполняются из-за повторных попыток (~ 5000 мс при 1 повторной попытке, ~ 10000 мс при 2 повторных попытках и т. Д.). Все еще не понимаю, почему это происходит в локальной сети. Одно интересное замечание заключается в том, что у нас есть несколько интерфейсов: некоторые работают на Linux, а другие - на Windows (IIS). Эта проблема возникает только у внешних интерфейсов с серверами IIS. Кто-нибудь сталкивался с проблемой связи HAProxy с IIS?