Loading...

PURIFICO ,

Overview

“Purifico” was conceived as a toolbox for specifically debugging Nodejs programs running in production, and was inspired after I saw a video1 on how the folks at Netflix were debugging running NodeJs processes leveraging mdb, interestingly enough it coincided with the time we just launched the first version of KongaEZ2 that was primarily targeted towards Opera Mini, we had downtimes and really all we saw on PM23 was an increase in CPU usage on navigating to a particular url, what was more baffling was that manually navigating to this url never reproduced this particular issue which made it both troubling that it was hard to figure out what was causing the nodes for the app to crash, in the meantime we scaled up the amount of nodes we had running for the app so that there at least the app was available to end users whilst we figured what was happening

This particular occurrence provided ample time to experiment, and so “Purifico” was born. Thankfully there had been some advancement with this line of thought in the form of llnode which leveraged lldb4 and in my opinion was much easier to set up than mdb (the tool referenced in the Netflix video), also a couple of people had already done some groundwork on how to configure and use llnode5.

We eventually figured out that the issue causing CPU to max out was some run away regex we were using to perform search on the server.

In 2020, I wouldn’t particularly advise you to use “Purifico” except you are looking to experiment, as the folks at NodeJS have created a node module6 also called llnode that makes it fairly easy to set up debugging for NodeJS now.

References