Останнім часом нам стало відомо про проблему з підключенням TCP, яка здебільшого обмежена користувачами Mac і Linux, які переглядають наші веб-сайти.
З точки зору користувача, він представляє себе як дуже довгий час підключення до наших веб-сайтів (> 11 секунд).
Нам вдалося віднайти технічний підпис цієї проблеми, але не можемо з’ясувати, чому це відбувається або як його виправити.
В основному, що відбувається, це те, що машина клієнта відправляє пакет SYN для встановлення TCP-з'єднання і веб-сервер отримує його, але не відповідає з пакетом SYN / ACK. Після того, як клієнт надіслав багато SYN-пакетів, сервер нарешті реагує пакетом SYN / ACK, і все в порядку до кінця з'єднання.
І, звичайно, головна проблема: вона переривається і не відбувається весь час (хоча це відбувається між 10-30% часу)
Ми використовуємо Fedora 12 Linux як ОС та Nginx як веб-сервер.
Скріншот аналізу проводів
Оновлення:
Якщо вимкнути масштабування вікон на клієнті, це зупинило ситуацію. Тепер мені просто потрібна роздільна здатність сервера (ми не можемо змусити всіх клієнтів це робити) :)
Остаточне оновлення:
Рішення полягало в тому, щоб вимкнути масштабування вікон TCP та часові позначки TCP на наших серверах, доступних для широкої публіки.