Я просматривал руководство по Apache httpd онлайн и наткнулся на директиву для включения этого. Нашел описание в справочной странице для tcp
:
TCP_DEFER_ACCEPT (since Linux 2.4)
Allow a listener to be awakened only when data arrives on the
socket. Takes an integer value (seconds), this can bound the
maximum number of attempts TCP will make to complete the
connection. This option should not be used in code intended
to be portable.
Потом я нашел эту статью, но мне все еще неясно, для каких рабочих нагрузок это будет полезно. Я предполагаю, что если httpd
есть опция специально для этого, она должна иметь отношение к веб-серверам. Я также предполагаю из того факта, что это вариант, а не только как httpd
сетевые подключения, что есть варианты использования, где вы хотите, и другие, где вы этого не делаете.
Даже после прочтения статьи мне неясно, каким будет преимущество ожидания завершения трехстороннего рукопожатия. Казалось бы, выгодно убедиться, что нет необходимости менять местами соответствующий httpd
экземпляр, делая это, пока продолжается рукопожатие, вместо того, чтобы потенциально вызывать эту задержку после формирования соединения.
Что касается статьи, мне также кажется, что независимо от TCP_DEFER_ACCEPT
состояния сокета, вам все равно понадобится четыре пакета (рукопожатие, затем данные в каждом случае). Я не знаю, как они уменьшают счет до трех, и как это обеспечивает значимое улучшение.
Итак, мой вопрос в основном: это просто старая устаревшая опция или есть реальная возможность использования этой опции?