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

Как определить количество открытых розеток? Проблемы с ресурсами ВМ

У меня есть сервер MediaTemple DV. Я видел много предупреждений QOS для "numothersock", который определяется как:

Количество сокетов, кроме TCP. Локальные (UNIX-домен) сокеты используются для связи внутри системы. Сокеты UDP используются, например, для запросов службы доменных имен (DNS). UDP и другие сокеты также могут использоваться в некоторых очень специализированных приложениях (агенты SNMP и другие).

Как я могу определить, какое приложение / демон / и т. Д. Создает эти сокеты? Лимит - 300, и в последнее время мы его превышаем по несколько раз в день.

Заранее спасибо.

netstat -nap
p shows the process id 

netstat -an | grep ESTABLISHED | wc -l

Это подсчитает все открытые сокеты в системе и выдаст только общее количество. Конечно, вы также можете изменить ESTABLISHED на все, что вам нужно, например, порт или статус связи, такой как CONNECTED или LISTENING.

Чтобы посмотреть в реальном времени открытые соединения MySQL через сокет UNIX, выполните (от имени пользователя root):

watch -n1 'netstat -np | grep -i mysqld'

netstat -a показывает им все. Или вы можете изучить его справочную страницу, чтобы отфильтровать только те типы соединений, которые вам интересны.

с участием ss

netstat является устарел, его замена ss.

Для вашего случая, ss -pun может быть полезно, что показывает UDP (-u) сокеты с информацией о процессе (-p) и не превращает номера портов в имена служб (-n).

я использую ss -ptln много чего показывает слушание (-l) TCP-сокеты (-t).

Это полезно с watch если вы хотите убедиться, что ваше веб-приложение очищает свои TCP-сокеты:

watch ss -ptln

Вот еще несколько примеров с ss.