-2

I apologize in advance if this has been asked/answered a lot. I don't know enough yet to know what I don't know.

We have a Wordpress site on a typical LAMP shared hosting platform that was getting hundreds of hits per day. We're getting more popular and this number is now approaching 1000.

At times it is SLOW or simply times out. The site allows for image downloads and tracks those by user in a database so it's essentially a very primitive, unpaid "store." I mention that because it will probably get slightly more DB inserts than a typical very small Wordpress site.

My question is: what are the factors that will matter most in scaling this up? Ideally, we would not recode anything and the server would magically handle the traffic better.

To my mind, there are 3 issues:

  1. The number of simultaneous visitors being served static pages

  2. The static content of all the images people might view or download (20gb)

  3. The mySQL databse processing each request via PHP.

I've seen various articles on dedicated servers, using several nameservers to load balance, managed hosts and cloud services.

As I wrote, I'd like some feedback as to how to measure what is causing the bottlenecks and then which types of services we should consider to make the greatest improvement with the least effort and cost for our scenario. IOW: how can I predict the impact of different upgrades we might attempt (VPS vs. cloud service vs. managed host, etc.)

6
  • Requests for learning material recommendations are off-topic, but I would suggest looking at your logs during slow times. 1000 hits a day is really not very much--only about 42 hits an hour--so I would look at other factors. Jul 2, 2014 at 21:52
  • 3
    On shared hosting, you're at the mercy of all the other customers. Your site literally could run off my phone. But throw it on a cheap server with a few hundred other people's sites getting 1000 hits a day, and you have a recipe for sloooowwwww... Even a small VPS would do you better than what you have now. Jul 2, 2014 at 22:14
  • Thanks to you both. Sorry if this is o/t but I've gotta start -somewhere-. Can either of you provide some pointers on how to determine if the slowness is via MySQL or the http requests? We can certainly afford a small VPS but I'd like to be able to -predict- bottlenecks are from and what to target.
    – jchwebdev
    Jul 2, 2014 at 23:13
  • I see this was closed as o/t. I think that's a -bit- harsh. I've edited this slightly but I think what I was looking for is of fairly broad interest. The concepts I'm trying to understand will not 'tend to become obsolete quickly'. Yes, certain books or companies may do, but I'm trying to grasp which factors matter -most- when going from where we were at (ultra-tiny) to slightly more. The other questions I saw here discussed sites with 10s of thousands of hits which doesn't apply for us.
    – jchwebdev
    Jul 3, 2014 at 18:11
  • The problem is, on shared hosting you can't measure most of these important metrics because you don't run the server. I can't stress enough the urgency of moving your site as soon as possible to a platform that you do control and can measure. Jul 3, 2014 at 18:19

2 Answers 2

2

The most bang for your buck, and really only option guaranteed to improve performance at all is to ditch the shared hosting. Get a dedicated server, or at the very least, a VPS (virtual private server), so you have dedicated resources.

Your site does not sound very resource intensive, and it's not hyperbole in the least to say that it could be run on a modern smart phone. This is to say that optimizing your site and improving your code's performance as a solution to the problem assumes that bottleneck is on your site, which is almost certainly not the case. What's happening is that you are competing with all the other sites on this shared host, and when too many of them get too busy at the same time, there's not enough resources to service your site's requests (and it's a safe bet that the other sites on this particular shared host have these same problems at the same time your site does).

So your first course of action needs to be to get a small VPS or dedicated server. Once you have your site (or a test version) on there, you can do benchmarking and testing and optimizations to determine what other improvements, if any are needed, but my money's on "if any." I'd bet that simply eliminating the other sources of competition for computing resources will be enough to eliminate the problems you described.

0

As you've probably seen read elsewhere - swap out apache for NGINX .. it has a greater performance over apache.

Also just as easy to configure.

Or alternatively try having a look at Microsoft Azure platform (or others), let someone else take care of the infrastructure :) If you create a "Free Trial" Microsoft Azure account it will give you £130 (GBP) worth of credit for the first month. Plenty of time to experiment with it.

2
  • 1
    I'm surprised you mention Azure... I thought that was SQL Server. My understanding is that running Wordpress on SQL Server is either not possible (or) requires -big- code changes.
    – jchwebdev
    Jul 2, 2014 at 23:10
  • Not at all, I guess it was aimed and marketed that way in its early days however now it is a hosting platform where you can host websites, virtual machines, disaster recovery, VPN, active directory instances, ClearDB (MySQL), SQL pretty much everything and all pay as you go - Pricing located here - azure.microsoft.com/en-us/pricing/calculator. So you could literally just sign up for a web hosting package. Like I said free trial - well worth it even if its just for the experience!
    – Rhys Evans
    Jul 3, 2014 at 8:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .