Как я могу профилировать приложение моего узла, чтобы увидеть, где я использую ресурсы памяти и процессора?

StackOverflow https://stackoverflow.com/questions/7305613

Вопрос

Мой веб-сайт, CompassionPit.com, питается node.js. Я выпустил исходный код; это размещен в GitHub. Анкет Само приложение работает на линоде с 768 МБ оперативной памяти (я недавно обновил сервер; он был на 512 МБ).

Недавно я получаю уведомления об использовании ЦП от Linode: мы все чаще часто используем 90%+ использование. Я позвонил Linode, чтобы увидеть, что я мог бы сделать с обновлением моего доступа к ресурсам процессора, но, очевидно, пока я в порядке, так как, если мы достигли 100%, мы можем перевернуться в следующие 3 ядра (Linodes 4 процессор Xen экземпляры).

Как я могу профилировать приложение моего узла, чтобы увидеть, где я использую ресурсы памяти и процессора? Я предсказываю, что скоро мне нужно реструктурировать приложение для запуска с помощью настройки нескольких серверов, но я интуитивно считаю, что правильное профилирование приведет к более умным решениям архитектуры. Пожалуйста, поправьте меня, если я ошибаюсь.

Это было полезно?

Решение

У меня был разумный успех, используя https://github.com/dannycoates/node-inspector для профилирования. В нижней части файла readme есть руководство по настройке.

По состоянию на более поздние версии node.js, профилирующая часть узла-инспектора больше не функционирует. У меня был разумный успех с --prof (http://code.google.com/p/v8/wiki/v8profiler) а также https://github.com/c4milo/node-webkit-agent Как упомянуто в ответе ниже.

Другие советы

Узел инспектор не может профилировать узлы после версии 0.6.x

Следующий плагин был обновлен для работы с новой версией V8 (узел 0.7.x +). Это единственный, помимо Nodetime.com, который все еще работает. Он использует фактический отладчик Webkit:

https://github.com/c4milo/node-webkit-agent

У этого также есть очень четкие инструкции.

С V6.3.0, Теперь вы можете бежать node --inspect your_script.js.

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

Бежать node --inspect --debug-brk Чтобы немедленно приостановить выполнение (что удобно, если вам нужно запустить сеанс профилирования, как только ваше приложение запустится)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top