Я использовал Wireshark для получения моей сети после ухудшающейся производительности моей сети начиная с установки моего нового сервера. Я узнал, что существует несколько моментов, где мой сервер отправляет 170.000 запросов SSDP в течение 30 секунд. Кажется немного чрезмерным :p
Simple Service Discovery Protocol
M-SEARCH * HTTP/1.1\r\n
Host: 239.255.255.250:1900\r\n
<Host: 239.255.255.250:1900\r\n>
Man: "ssdp:discover"\r\n
ST: ssdp:all\r\n
MX: 5\r\n
\r\n
[Full request URI: http://239.255.255.250:1900*]
<Request: True>
[HTTP request 10/149390]
[Prev request in frame: 9]
[Next request in frame: 12]
Это - точный запрос, который отправляет больше, чем 100k времена. Теперь я задавался вопросом, там умный способ узнать, какой точный процесс вызывает этот запрос на моем сервере?
Использовать sudo lsof -n -P -i +c 13 | grep 1900
найти процесс, делающий это.
От man lsof
: Список открытые файлы
Открытый файл может быть регулярным файлом, каталогом, блок специальный файл, символьный специальный файл, выполняющаяся текстовая ссылка, библиотека, поток или сетевой файл (интернет-сокет, файл NFS или сокет домена UNIX.) Определенный файл или все файлы в файловой системе могут быть выбраны путем.
-n
: запрещает преобразование номеров сетей к именам хостов для сетевых файлов. Запрещение преобразования может сделать lsof выполненным быстрее. Также полезно, когда поиск имени хоста не работает правильно.
-P
: запрещает преобразование номеров портов для портирования названий сетевых файлов. Запрещение преобразования может сделать lsof выполненным немного быстрее. Также полезно, когда поиск имени порта не работает правильно.
-i [i]
: выбирает список файлов, любой чей Интернет-адрес соответствует адресу, указанному во мне. Если никакой адрес не указан, эта опция выбирает список всего Интернета и x.25 (HP-UX) сетевые файлы.
+c w
: определяет максимальное количество начальных символов имени, предоставленного диалектом UNIX, команды UNIX, связанной с процессом, который будет распечатан в столбце COMMAND. (lsof значение по умолчанию равняется девяти.)
sudo lsof -n -P -i +c 13 | grep 1900
Это перечисляет файлы, открытые процессами в Вашей системе, и использует те перечисленные опции выше для изменения то, что представлено Вам. Например, я использовал:
sudo lsof -P -i +c 13
Результат:
Медленнее без -n
, и
Преобразование номеров сетей к именам хостов
postgres 2930 postgres 11u IPv4 28152 0t0 UDP localhost:56771->localhost:56771
postgres 2931 postgres 11u IPv4 28152 0t0 UDP localhost:56771->localhost:56771
postgres 2932 postgres 11u IPv4 28152 0t0 UDP localhost:56771->localhost:56771
postgres 2933 postgres 11u IPv4 28152 0t0 UDP localhost:56771->localhost:56771
postgres 2934 postgres 11u IPv4 28152 0t0 UDP localhost:56771->localhost:56771
postgres 2936 postgres 11u IPv4 26439 0t0 UDP localhost:46276->localhost:46276
postgres 2937 postgres 11u IPv4 26439 0t0 UDP localhost:46276->localhost:46276
postgres 2938 postgres 11u IPv4 26439 0t0 UDP localhost:46276->localhost:46276
postgres 2939 postgres 11u IPv4 26439 0t0 UDP localhost:46276->localhost:46276
postgres 2940 postgres 11u IPv4 26439 0t0 UDP localhost:46276->localhost:46276
Но использование:
sudo lsof -n -P -i +c 13
Результаты:
Быстрее, и ни один преобразование номеров сетей к именам хостов
postgres 2930 postgres 11u IPv4 28152 0t0 UDP 127.0.0.1:56771->127.0.0.1:56771
postgres 2931 postgres 11u IPv4 28152 0t0 UDP 127.0.0.1:56771->127.0.0.1:56771
postgres 2932 postgres 11u IPv4 28152 0t0 UDP 127.0.0.1:56771->127.0.0.1:56771
postgres 2933 postgres 11u IPv4 28152 0t0 UDP 127.0.0.1:56771->127.0.0.1:56771
postgres 2934 postgres 11u IPv4 28152 0t0 UDP 127.0.0.1:56771->127.0.0.1:56771
postgres 2936 postgres 11u IPv4 26439 0t0 UDP 127.0.0.1:46276->127.0.0.1:46276
postgres 2937 postgres 11u IPv4 26439 0t0 UDP 127.0.0.1:46276->127.0.0.1:46276
postgres 2938 postgres 11u IPv4 26439 0t0 UDP 127.0.0.1:46276->127.0.0.1:46276
postgres 2939 postgres 11u IPv4 26439 0t0 UDP 127.0.0.1:46276->127.0.0.1:46276
postgres 2940 postgres 11u IPv4 26439 0t0 UDP 127.0.0.1:46276->127.0.0.1:46276
Здесь я просто использовал -n
, выполнение преобразования номера сети занимает больше времени без опции -n
делает поиск быстрее, удалите для наблюдения имен хостов. Игра вокруг с другой опцией видеть различные выводы. В общем и целом те опции улучшаются, поисковый ответ делает его быстрее.