У меня есть HTTP-сервер, который обслуживает только два типа страниц: около 10 КБ и около 16 КБ (оба сжатые, остальные файлы из CDN). Поскольку задержка довольно высока (ping
занимает более 300 мс), я хочу оптимизировать стек TCP, чтобы клиент получал всю страницу как можно скорее.
Таким образом, у меня двойной вопрос:
Если вы застряли с такой высокой задержкой, я думаю, вам бы хотелось избежать Медленный запуск TCP. По умолчанию стек TCP будет ожидать ACK после отправки первых 3 пакетов, в вашем случае это означает задержку 600 мс из-за времени приема-передачи. Он уже был выведен из употребления Вот. В соответствии с этот, вы не можете легко изменить этот номер в Linux, кроме перехода на версию ядра 2.6.33.
Возможно, вы могли бы перекомпилировать свое ядро с большим значением для правильного параметра или перейти на ОС, которая позволяет вам использовать большее значение для этого параметра (я думаю, что здесь можно настроить Solaris).
На стороне приложения обязательно включите HTTP Keep-Alive, чтобы избежать медленного запуска при каждом HTTP-запросе.
Я не думаю, что есть какое-то отношение к конкретным tcp / ip и другим настройкам, связанным с сетью, которые вы можете изменить в ядре, чтобы существенно уменьшить задержку, т.е. снизить ее с 300 мс до менее 100 мс. Если что-то изначально не настроено неправильно, что вызывает такую задержку, или если сервер чрезмерно занят (или проблема с оборудованием).
Вам необходимо предоставить больше данных, таких как трассировки к вашему серверу и от него, а также результаты ping к вашему серверу и от него, а также любые другие данные, которые могут показать возможные причины такой задержки.