queries taking time inside `mon_synchronize`

12 views
Skip to first unread message

Thushara Wijeratna

unread,
Feb 25, 2020, 11:21:37 PM2/25/20
to Ruby on Rails: Core
Hi All,

I have a Rails app (rails version 5.2.4.1 / ruby 2.6.3) that makes queries to a postgres database using ActiveRecord.
I want to reduce query latency.

I'm using NewRelic to understand what the slow queries are, and I see pretty much each one of them is spending time inside the `mon_synchronize` method in monitor.rb

I'm attaching a few screenshots from NewRelic.

My question is - what is the reason ActiveRecord is taking this lock? Is there anything I can do to get a better response from the queries.

The database itself is pretty small - thousands of records.

thanks,
thushara


Screen Shot 2020-02-25 at 9.42.14 AM.png
Screen Shot 2020-02-25 at 9.43.14 AM.png
Screen Shot 2020-02-25 at 9.46.06 AM.png

Josh Brody

unread,
Feb 25, 2020, 11:31:11 PM2/25/20
to rubyonra...@googlegroups.com
Hi Thushara,

Just to double-check: Is your database indexed correctly? Have you tried plugging in something like lol_dba gem to spot missing indexes?

Sent from my iPhone

On Feb 25, 2020, at 10:21 PM, Thushara Wijeratna <thu...@gmail.com> wrote:


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-co...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-core/b5e55010-a295-4d3d-8402-0582a5f5b6f3%40googlegroups.com.
<Screen Shot 2020-02-25 at 9.42.14 AM.png>
<Screen Shot 2020-02-25 at 9.43.14 AM.png>
<Screen Shot 2020-02-25 at 9.46.06 AM.png>

Thushara Wijeratna

unread,
Feb 26, 2020, 12:33:02 AM2/26/20
to Ruby on Rails: Core
Yes - the indexes are there. Most times, postgres doesn't use them as it is faster to just read the rows from the table (vs going back to the table again). I've seen this to be the case unless the tables are large.
Also, it is generally pretty fast - but there is this occasional slow down.


On Tuesday, February 25, 2020 at 8:31:11 PM UTC-8, Josh Brody wrote:
Hi Thushara,

Just to double-check: Is your database indexed correctly? Have you tried plugging in something like lol_dba gem to spot missing indexes?

Sent from my iPhone

On Feb 25, 2020, at 10:21 PM, Thushara Wijeratna <thu...@gmail.com> wrote:


Hi All,

I have a Rails app (rails version 5.2.4.1 / ruby 2.6.3) that makes queries to a postgres database using ActiveRecord.
I want to reduce query latency.

I'm using NewRelic to understand what the slow queries are, and I see pretty much each one of them is spending time inside the `mon_synchronize` method in monitor.rb

I'm attaching a few screenshots from NewRelic.

My question is - what is the reason ActiveRecord is taking this lock? Is there anything I can do to get a better response from the queries.

The database itself is pretty small - thousands of records.

thanks,
thushara


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonra...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages