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

Диагностика использования сокетов в GNU / Linux, сопоставление данных из разных инструментов

Я пытаюсь разобраться в ситуации с сервером, над которым работаю. Моя проблема кратко изложена здесь:

[root@server ~]# cat /proc/net/sockstat
sockets: used 2338
TCP: inuse 15 orphan 0 tw 29488 alloc 438 mem 1077
UDP: inuse 1 mem 1
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0
[root@server ~]# netstat -ant | wc -l 
221
[root@server ~]# netstat -ant | grep WAIT | wc -l 
203
[root@server ~]# ss -a | wc -l
341

Обратите внимание на высокий tw ценность в /proc/net/sockstat. Однако количество сокетов, о которых сообщается при использовании другими инструментами, отличается от количества сокетов, указанных в sockstat на несколько порядков. Я не совсем понимаю, что это значит.

На этом сервере работает несколько микросервисов, которые, в свою очередь, обрабатывают / создают соединения с другими сервисами. Эти соединения могут быть или не быть локальными (например, «тот же сервер»). Поскольку это производственный сервер частной организации, я не могу размещать здесь все его данные и конфигурации. Тем не менее, я готов публиковать соответствующие фрагменты информации, когда люди об этом просят.

Имея это в виду, я пытаюсь найти какое из текущих соединений на сервере может иметь столько сокетов, связанных в состоянии TIME_WAIT.

Пока что, ища в Интернете способ сопоставления этих данных, я обнаружил, что многие люди объясняют динамику, лежащую в основе TIME_WAIT. Но это затем идет на настройку сервера, чтобы избежать ситуации, и это больше вопрос о том, как отслеживать соединения, сообщаемые с помощью различных инструментов. Выявив проблемное соединение, я могу диагностировать несколько возможных ситуаций, поскольку я знаю задействованное программное обеспечение и то, что оно делает: я могу узнать, какие соединения выполняются, как и почему. Итак, я хотел бы сосредоточиться на связи между общими инструментами сетевого состояния (например, netstat и ss) дай мне, и что я вижу в /proc/net/sockstat.

Итак, как я могу сопоставить эти данные?