Назад | Перейти на главную страницу

Нахождение so_sndbuf запущенного процесса

Мне интересно, есть ли способ найти tcp so_sndbuf активно запущенного процесса (например, apache или nginx). Я знаю, что tcp_wmem устанавливает значение по умолчанию, но я не уверен, устанавливают ли серверные программы, с которыми я работаю, свои собственные.

Моя цель в том, что я пытаюсь установить начальное окно (IW) (см. ссылка на сайт почему) для TCP-соединений. Я смотрел на это бумага из Google, и они рекомендуют изменить значение по умолчанию tcp_wmem на MSS * IW. Однако я беспокоюсь, что программы могут устанавливать свои собственные so_sndbuf вместо использования tcp_wmem, поэтому я хочу дважды проверить.

Я использую ядро ​​Linux 2.6.18-194.26.1.el5 (CentOS).

Я не знаю о допросе В настоящее время запущенного процесса, но вы можете ответить на свой вопрос, запустив программу под управлением strace, служебная программа трассировки системных вызовов. Например:

# strace -f -e trace=setsockopt /path/to/program

Это даст следующий результат:

setsockopt(3, SOL_SOCKET, SO_SNDBUF, [98304], 4) = 0

Вы также можете использовать магию функциональное взаимодействие преодолеть setsockopt() функциональный вызов (и, например, распечатать значение, связанное с SO_SNDBUF вариант), но это, вероятно, не стоит усилий.