Discourse forum hangs and times out, doesn't load

As of recently, our Discourse forum started timing out on most requests: https://caddy.community

No updates or changes were made when it started happening a few days ago. Sometimes it loads fine, but a few minutes later it will take minutes to load. (So if the above link loads fast for you, try again a few minutes later. You can also try with curl.)

We’re hosted on DigitalOcean.

Machine resources are not full: there’s plenty of CPU, RAM, disk, and network I/O available.

There are no errors in the logs, and no unknown processes running on the machine either. It’s been running fine for about 3 years but now it won’t load.

Does anyone know how to get the forum running quicker? We rebooted the machine and the forum still runs slowly.

2 Likes

Hey @mholt :wave:,

I did try going back and forth between /latest and /categories and it’s pretty fast.

Are you seeing slowdown in specific routes of the app?

Also, do you have the MiniProfiler enabled?

Please follow this to enable it:Long loading times for user summary page with slow database

After enabling it, when you hit a slow down you will know exactly where it is.

7 Likes

Huh… dang, it is loading faster today. :thinking: (Others in our community have also experienced it, I know it’s not just me, haha – but it can be intermittent, it seems.)

I’ll try that out when I have a chance, thanks!

5 Likes

Hmm, it seems my ssh connections also time out sometimes.

I wonder if DigitalOcean is having network issues (they haven’t reported anything, though) – maybe I will have to open a ticket with DO to find out. It might not be specific to Discourse.

2 Likes

This has started happening again recently: takes several minutes for the forum to load.

Ping times to the DigitalOcean droplet are nominal: ~80ms. Server load is also nominal:

The timings in the debug thing in the corner (MiniProfiler) don’t reveal any problems: all times are within ~300ms:

(This page took about 3 minutes to load.)

Is there any part of the loading process between reaching the server and rendering the page that are not counted by the MiniProfiler?

2 Likes

Time spent on Redis isn’t counted and can cause what you see. You will have to dig into the server and check if Redis is having trouble to persist changes to disk.

2 Likes

Interesting, any tips on how to do that? Or link to a relevant guide? This is outside my pay grade :sweat_smile:

2 Likes

Oh let me correct myself a bit here. The time spent on redis won’t be on the broken down part of mini profiler, but be counted in the overall time in the first column. So looking at your screenshot, this doesn’t appear to be the case.

Does Caddy logs time waiting on the backend and overall time spent on each request? Is there a possibility that the reverse proxy was waiting?

3 Likes

I will add this to the logs and try to find out next time it happens.

1 Like

This could be time it is taking it to grab static assets ? Maybe have a look in chrome dev tools next time this happens?

1 Like

Thanks for the idea Sam. I have looked at the network inspector before and I do not believe I remember anything too telling – but I’ll check it in more detail next time.

This tends to happen every few days or so, I’ll report back when it does!

1 Like