While checking my API metrics in new relic and found queries are getting executed with response time in a few ms, but there is a field for #PID<0.30881.849> which took 300ms+ to process.
Below is the table
Category
Slowest components
Count
Duration
%
#PID<0.30881.849>
#PID<0.30881.849>
1
379 ms
97%
Database
Postgres rules_engine_test_cases select
1
2 ms
1%
Database
Postgres rules_engine_conditions select
1
1 ms
0%
Database
Postgres rules_engine_results select
1
1 ms
0%
Database
Postgres rules_engine_new_audit_logs insert
1
1 ms
0%
WebTransaction
/Diamond.Web.RuleSetController/select_evaluate
1
0 ms
0%
Remainder
Remainder
1
7 ms
2%
Total time
391 ms
100%
Can you please help me understand this as it is causing few timeouts as well?
Reason why you are not getting almost any answers is that what you are asking is basically someone else to do your work for you. Also they can’t give you any answers because they don’t have access to your code and if they did they would have to what you need to do and that is to find out what part of your code is slow. If someone asked something like that from you would you be able to answer?
I don’t work with Elixir professionally but first thing I would do is to find out what parameters where given to the request. Then try to get same problem appear in your local environment and start profiling. I haven’t yet used any Elixir/BEAM profiling tools because I haven’t had any performance problems with my small projects. With small bit of googling I found this blog how to do performance profiling in Elixir An Elixir performance tooling story | by Victor Nascimento | Medium