Крупная лавинная рассылка SSDP, как найти причину

Я использовал 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 времена. Теперь я задавался вопросом, там умный способ узнать, какой точный процесс вызывает этот запрос на моем сервере?

0
задан 11 October 2017 в 06:12

1 ответ

Использовать sudo lsof -n -P -i +c 13 | grep 1900 найти процесс, делающий это.

От man lsof: Список открытые файлы

Открытый файл может быть регулярным файлом, каталогом, блок специальный файл, символьный специальный файл, выполняющаяся текстовая ссылка, библиотека, поток или сетевой файл (интернет-сокет, файл NFS или сокет домена UNIX.) Определенный файл или все файлы в файловой системе могут быть выбраны путем.

  1. -n: запрещает преобразование номеров сетей к именам хостов для сетевых файлов. Запрещение преобразования может сделать lsof выполненным быстрее. Также полезно, когда поиск имени хоста не работает правильно.

  2. -P: запрещает преобразование номеров портов для портирования названий сетевых файлов. Запрещение преобразования может сделать lsof выполненным немного быстрее. Также полезно, когда поиск имени порта не работает правильно.

  3. -i [i]: выбирает список файлов, любой чей Интернет-адрес соответствует адресу, указанному во мне. Если никакой адрес не указан, эта опция выбирает список всего Интернета и x.25 (HP-UX) сетевые файлы.

  4. +c w: определяет максимальное количество начальных символов имени, предоставленного диалектом UNIX, команды UNIX, связанной с процессом, который будет распечатан в столбце COMMAND. (lsof значение по умолчанию равняется девяти.)


 sudo lsof -n -P -i +c 13 | grep 1900

Это перечисляет файлы, открытые процессами в Вашей системе, и использует те перечисленные опции выше для изменения то, что представлено Вам. Например, я использовал:

 sudo lsof -P -i +c 13

Результат:

  1. Медленнее без -n, и

  2. Преобразование номеров сетей к именам хостов

    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

Результаты:

  1. Быстрее, и ни один преобразование номеров сетей к именам хостов

     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 делает поиск быстрее, удалите для наблюдения имен хостов. Игра вокруг с другой опцией видеть различные выводы. В общем и целом те опции улучшаются, поисковый ответ делает его быстрее.

0
ответ дан 2 November 2019 в 03:32

Другие вопросы по тегам:

Похожие вопросы: