Существуют ли сообщения поддержки активности для сокетов?
Предварительный брифинг:
Хотя мой вопрос намеренно широк, я имею дело с подключением nginx к php-fpm (fcgi), который обслуживается через локальный сокет (/tmp/somesocket.socket).
В Nginx есть настройка для поддержки активности подключений к бэкэндам fcgi ( http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html).
Вот к чему относится мой вопрос.
Вопрос:
В linux при подключении к локальным сокетам существует такая вещь как keepalive?
Будет ли поддержание соединения в рабочем состоянии удалить (даже чуть-чуть) некоторые накладные расходы, связанные с созданием / разрывом соединения?
Благодарю.
1 ответ
Я предполагаю, что вы имеете в виду локальные сокеты Unix здесь.
В linux при подключении к локальным сокетам существует такая вещь как keepalive?
Нет, keepalive предотвращает тайм-аут удаленной стороны. Поскольку хост знает состояние обеих сторон соединения, keepalive является избыточным.
Будет ли поддержание соединения в рабочем состоянии удалить (даже чуть-чуть) некоторые накладные расходы, связанные с созданием / разрывом соединения?
Да, за счет поддержки большего количества файловых дескрипторов, что, вероятно, очень дешево в практическом плане. Настройка соединения и его закрытие требует 5 системных вызовов (открыть и подключиться на клиенте, принять на сервере, закрыть на клиенте / сервере), которых при необходимости поддерживать соединение необходимо до тех пор, пока это не потребуется.