I think basically the database has gone past some magic point and suddenly some of the queries are slow. We've got around 3 million rows in the database, which is a lot, but then not really a huge amount. And I think that at some point the query optimiser has optimised itself for X rows, and now we're above X some queries are going slower.
The problem is peak times.
We have over 10,000 unique visits a day, and averaged out we're serving a page every second throughout the year. But it's not averaged... at peak times we're serving 5 dynamic pages a second.
What this means is that if the queries are slow at peak times, things get queued up. And because the traffic is constant, the queue never gets a chance to be cleared. And the longer the queue gets, the more connections are tied up and the slow the forum becomes.
The server can cope, but the queue just gets too long so everything goes slow. So whilst it can cope it's not ideal.
What I need to do is look at how to scale the forum further. Possibly through adding a second server, replicating the MySql, and then load balancing the front end (reduce query time plus wipe out the queueing problem).
But this is money that we don't have, and it's also time and energy which I don't have. So unless something changes we'll just chug along as we are for a while.
I've asked the guys at Jelsoft for recommendations on server optimisation given the current setup, and I'll see whether that makes a difference.
Something happened a few days ago.
I think basically the database has gone past some magic point and suddenly some of the queries are slow. We've got around 3 million rows in the database, which is a lot, but then not really a huge amount. And I think that at some point the query optimiser has optimised itself for X rows, and now we're above X some queries are going slower.
The problem is peak times.
We have over 10,000 unique visits a day, and averaged out we're serving a page every second throughout the year. But it's not averaged... at peak times we're serving 5 dynamic pages a second.
What this means is that if the queries are slow at peak times, things get queued up. And because the traffic is constant, the queue never gets a chance to be cleared. And the longer the queue gets, the more connections are tied up and the slow the forum becomes.
The server can cope, but the queue just gets too long so everything goes slow. So whilst it can cope it's not ideal.
What I need to do is look at how to scale the forum further. Possibly through adding a second server, replicating the MySql, and then load balancing the front end (reduce query time plus wipe out the queueing problem).
But this is money that we don't have, and it's also time and energy which I don't have. So unless something changes we'll just chug along as we are for a while.
I've asked the guys at Jelsoft for recommendations on server optimisation given the current setup, and I'll see whether that makes a difference.