Возможность присоединить встроенный профилировщик Node к существующему процессу - PullRequest
0 голосов
/ 21 февраля 2019

Я знаком со сборкой Node в профилировщике ЦП:

NODE_ENV=production node --prof server.js

... но можно ли подключить профилировщик к работающему процессу.

Проблема, которую мне нужно решить, заключается в том, что во время запуска нашего IoT-шлюза возникает большая нагрузка, и я хочу профилировать ЦП только ПОСЛЕ подъема в устойчивом состоянии, поэтому я хочу прикрепить егок процессу запуска, а не к мониторингу при запуске, поскольку это будет полностью представлять мое устойчивое состояние.

Я знаю, что вы можете сделать это с помощью отладчика, но мне нужно сделать это для профилировщика.

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете использовать удаленный инспектор

 NODE_ENV=production node --inspect-brk server.js

Теперь перейдите в chrome к chrome://inspect, запустите NodeJS Inspector и возобновите работу приложения

  1. Запустите профилировщик вручную с Profiler таб.
  2. Вы можете запустить профилировщик в своем коде с помощью console.profile() и console.profileEnd()

Если вы хотите проверить удаленный сервер:

  1. Запустите скрипт с: NODE_ENV=production node --inspect=0.0.0.0:9229 server.js
  2. В chrome://inspect нажмите Configure new Discover network targets и добавьте IP-адрес и 9229 порт вашего сервера.Обновите страницу, и вы увидите свой удаленный сервер для проверки.

Обязательно откройте порт 9229 на брандмауэре удаленного сервера.Если вы можете получить доступ только к 22 (ssh), попробуйте открыть ssh-tunel: ssh -L 9229:127.0.0.1:9229 some@myserver -N. Тогда вы можете запустить сервер только с флагом --inspect, без ip-привязки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...