В Linux «/proc/sys/net/ipv4/tcp_keepalive_time» влияет как на клиента, так и на сервер?

В Linux «/proc/sys/net/ipv4/tcp_keepalive_time» влияет как на клиента, так и на сервер?

У нас есть машина, работающая на Linux, где мы выставляем и также потребляем веб-сервисы на основе SOAP, которые используют настройки Keep Alive. Теперь, когда мы изменяем значение тайм-аута TCP Keep Alive, устанавливая "/proc/sys/net/ipv4/tcp_keepalive_time" в Linux, повлияет ли это как на TCP-клиентов, так и на серверы, работающие в этой коробке Linux?

Дополнительная информация: Мы используем конечные точки Apache Camel-cxf, развернутые в Apache Karaf (ServiceMix), для предоставления и использования веб-сервисов на основе SOAP.

решение1

Встроенная поддержка ядра Linux для TCP keepalive влияетвсеTCP-сокеты с поддержкой функции keepalive.

Однако TCP keepalive по умолчанию не включен: приложения должны явно запрашивать управление keepalive для своих сокетов с помощью интерфейса setsockopt.

Проверить, включена ли функция keepalive для конкретного сокета, можно с помощью netstatкоманды с -o, --timersопцией:

Здесь вы можете видеть, что один и тот же процесс может открывать разные сетевые сокеты в обоих режимах:

# netstat -anpo | grep 8999
tcp        0      0 10.10.171.44:48744         10.10.139.30:8999          ESTABLISHED 18232/java          keepalive (83.39/0/0)

# netstat -anpo | grep 8009
tcp        0      0 10.10.171.44:8009          10.10.171.42:40947         ESTABLISHED 18232/java          off (0.00/0/0)

Связанный контент