I have a Drupal 6 site currently hosted on a basic Godaddy "Economy" shared hosting plan for $5 per month.

The site is based on a single Views 2 table view using Exposed Filters. Users select from up to four exposed Taxonomies (these are multi-select so can be used to select more than one value per taxonomy) to run queries against 3,500 nodes. For each node, data is returned from 5 CCK Computed text fields. The Computed data isn't calculated on-the-fly, it is saved in the database (so hopefully the "computed" aspect is irrelevant). Two of the fields are standard, short pieces of text but three are longer - each returning a text string that is around 1,500 characters long from the database. Nodes are displayed 30 per page using the Views Pager.

I need this site to run very, very fast and the performance at Godaddy is not quite up to scratch. To be fair, I don't really expect it to be for that money. I am now looking for a hosting plan that can provide lightening fast page loads for this website.

Basically, this site runs queries - that's all it does. So the queries must run fast.

I am not interested in any kind of hosting package that will require me to maintain any kind of server (virtual or otherwise), I just want very, very fast and reliable managed hosting that will work with this website.

Traffic is currently 0 but I guess I want to be prepared for 1,000/2,000 visitors a day initially.

My maximum budget is around $30 per month.

Any thoughts would be appreciated, particularly with specific comment on the details of the site I have given.

Thanks very much guys.

Comments

pavel.karoukin’s picture

You can buy VPS for these money. This should work the best. I can't recommend particular VPS provider, but just shop around for a while to get best gang for your buck.

Also, consider Views caching. If your data do not changes much - this might resolve all your issues.

Another option - try to revise SQL generated by Views and look if it's possible to add some indexes to make this query work faster. If you are not sure how to evaluate your query:

1) Go to view edit page and click Preview button. This will generate preview and query which was used to get data from database
2) Go to phpMyAdmin or similar and run SQL query:
EXPLAIN EXTENDED [sql query generated by views put here]

Show up result of this query here =)

mrtbc’s picture

Thanks hippich. All helpful stuff. I'm interested in managed VPS recommendations if anyone has them please. I really don't want to do any server set-up or maintenance.

pavel.karoukin’s picture

Well.. I have dedicated server to host client's sites. If you want - we can try to host your site on my dedicated server. If it will work well - we can discuss payments. I am already managing this server and using it to host drupal sites only, so it should be pretty drupal-friendly =) The only drawback - I am using PHP 5.3.2 on server so your site should be fully upgraded in order to work well without trowing various errors and warnings.

Anyway, if you want to try it - write back to pavel@yepcorp.com.

mrtbc’s picture

Thanks hippich, this has turned out to be very helpful advice.

I now realise that my site runs much more quickly:

1. For anonymous users on all pages and views (I was always browsing it when logged in)
2. When the view is cached for anonymous users

As my users will be anonymous this has helped me out a lot in the short-term, and also helped to identify the problem as being specifically slow response from the MySQL server (I think).

Unfortunately the data will change quite regularly so caching will only help so much. Can anyone explain how views caching works? i.e. if I change 5 nodes, what happens then? How can I get the view to re-cache?

I am still interested in recommendations for hosting with very fast MySQL access. Anyone?

mrtbc’s picture

Hmmm. I've done some tests and it looks as though every time I edit one node the whole view (and it's 100 separate pages) need to be re-cached. Unfortunately the data will be updated every week, so I definitely a faster host.

pavel.karoukin’s picture

I do not see a problem. If your nodes will be updated once a week - set caching to keep cached version of page for 1 day. This should eliminate all burdens from Views. If one day doesn't work - set to one hour, etc.

Another option - use Boost static file cache. It has rules to clear cache when nodes created/updated. So you can configure it so it will reset cache everytime you update content. And it serves pages even faster then built in cache. But to do this you have to have clean urls enabled + Apache or nginx as webserver. Other webserver probably will work too, but I bet there will be some problems with them.

seanray’s picture

Hostgator VPS hosting could be a good choice.

mrtbc’s picture

Thanks. I have been looking at that option actually.

I'm also currently considering Hot Drupal and Media Layer. I really want a host that makes some strong claims on being able to run a PHP/MySQL and/or Drupal site at a very fast speed.

seanray’s picture

I am using HostGator for my Drupal sites right now, I am pretty sure it is good for Drupal.

I don't recommend HotDrupal, this company might market too much on Drupal, this is not a good thing for their business as a Good Drupal hosting is also a good hosting for wordpress, joomla, phpbb.

MediaLayer is good, but they don't provide VPS hosting, once your need something beyond shared hosting, you have to choose a dedicated server from them or come back to hostgator again.

mrtbc’s picture

Thanks for your help and advice everyone.

In the end I set some caching options and switched my hosting to MediaLayer. So far they are excellent, I would definitely recommend them.