Поделитесь опытом, как вы дебажите ноду?
Публичный постСап, клуб! На рабочем проекте нода жрёт CPU как не в себя, хотя по большому счёту, на ней только vue-ssr. Как итог, очень хреновенький рпс.
Я к сожалению в своём развитии пока не сильно далеко эволюционировал от личинки программиста и ни разу не решал проблем с производительностью. Прошу советов, наводок, инсайтов и личного опыта о том, как разобраться, понять и пофисксить это добро.
Пока успел прочитать гайд по встроенному профайлеру и ещё несколько статей из гугла, но ощутимых результатов мне это не принесло, продолжаю гуглить :)
Один раз пришлось искать почему нода съедает все процы, получилось найти по этому гайду https://medium.com/voodoo-engineering/node-js-and-cpu-profiling-on-production-in-real-time-without-downtime-d6e62af173e2
В частности достаточно было запустить приложение с
— prof
И потом изучать аутпут - в нем в визуально можно найти паттерны подозрительные, чаще всего бесконечные циклы. У меня это происходило в стороннем модуле, который парсил html.То что потребляется CPU явно говорит о том, что у тебя какая CPU-intensive задача (какие расчеты например), в чем нода, мягко говорят, плоха.
Я писал сервисы на node и когда нужно было решать проблемы производительности мне хватало использования команды
node --inspect <file>
. Так можно профилировать прямо из хрома.Лучше опиши проблему точнее и что за сервер, что он делает.
КМК, самое годное что есть это https://www.npmjs.com/package/debug, в самом простом случае расставляешь дебаги и смотришь что сколько занимает времени, можно неймспейсить дебаг-пойнты для более детального разделения по функционалу: как мне видится самое простое это неймспейснуть запросы в бд и бизнес-логику, тогда сразу будет видно, что именно боттлнечит
https://clinicjs.org/ набор достаточно удобных инструментов профайлинга