High End VPS vs Low End Dedi vs "the cloud", etc

shawn

Well-known member
This is a bit of a spin-off from a discussion Slavik and I were having in another thread. I started wondering if maybe there's a better hosting solution out there for me. And with my yearly hosting bill coming due soon, there's no better time to think about it.

So... quick stats of my board and server:

Closing in on 1M posts
~350 peak users (incl visitors and bots)
Nginx w/Apache reverse proxy (little old school now that php-fpm has matured, but it works)
Mysql 5.1
PHP 5.2
APC opcode cache
~2GB ram
Centos 5
Self-hosted DNS, email, etc.
$1300/yr

We started out on shared hosting, moved on to a low-end VPS, upgraded the VPS periodically as we ran out of ram, finally got to the point where we were ok on ram, but had problems with disk I/O, so upgraded to a higher tier (hybrid) VPS with better hardware. We've been there for about 18 months.

Lately I've been seeing disk I/O wait cycles jumping up in the logs, but am waiting to move to XF (likely this coming weekend) and waiting for that change to shake out before making any decisions about hosting needs.

If we do need to upgrade, my first reaction is to add a second VPS and set up a dedicated DB server. I like the *idea* of VPS hardware. We've essentially been on the same vps installation since 2009, it's just moved from one physical server to another a few times. I have my doubts that a dedicated box, especially a low-end, consumer-grade box, would have lasted that long without needing a hard drive swapped out or a power supply replaced, etc. I've investigated cloud hosting, but its tough to get a handle on the actual costs up front, and frankly, some of the high-profile outages (and data loss) have scared me off of the whole idea.

I'm not looking for a 'deal'. I'm looking for the sweet spot where I'm getting the most value for the least money. Value is subjective and open to individual interpretation, though.

Anyway, I've rambled on enough about my own setup and prejudices. I'm curious to know what everyone else's are. I'm not looking to be right about this.... in fact, the earlier discussion brought to mind the possibility that I'm wrong about everything.

So what's your setup, and why?
 
I am hosted by urljet. My current bill is $34.95 a month and includes 15GB RAID-10 Disk Space, 300 GB Premium Bandwidth, R1 Hourly Backup, Softaculous and has Cpanel. A coder told me I had problems with one of their modifications because I'm on php 5.2. I asked urljet about it and they are moving my site over to a server with PHP 5.3. I really want GeoIP though so I can use Digital Map's User Map and would also want to be able to use Cloudflare without the site going offline. That's what was happenining on my last server, plus it was timing out a lot when rebuilding caches and templates in Xenforo. I chose urljet when I was shopping around for a vBulletin host I saw their reviews on vbulletin.com and they were generally good.
 
I am hosted by urljet. My current bill is $34.95 a month

UrlJet is pricey if you go by hardware specs alone. Their niche is in providing vbulletin support, optimization, upgrades, etc. So those extras come with a price premium.
 
Okay.... but *why*? That's really the more interesting part.

IMHO, a single host will always be better performance and less management. 2 x VPS means VPN, dual management/updates/log/hacks and potential problems, plus you have overhead of 2 x OS in memory. Add in the latency of network based DB queries instead of local socket, etc. From my pricing based research ~4 mths ago, I got much better 'bang for buck' (ie. value) with a dedicated thand I would with 2 x VPS. The disk requirements for the database VPS (or add-on NAS/SAN) is what increased the pricing, as I found you jumped into tiers of unnecessary CPU performance to get the disk space required or high pricing for NAS/SAN.
 
I would expect you to be able to run this for $30/month or less. No joke. A Linode VPS that is properly optimized can easily handle 350 concurrent users. Right now I have a Linode 768 MB running about 5 sites, two of them Xenforo installs, one phpBB install, a vBulletin install, and a couple of other things. The webserver is Litespeed - right now the webserver has been up 11 hours and has handled 275,000 requests - that's about 6.9 requests per second, and I think it could handle more. You just have to be very careful about how you optimize MySQL and the webserver but it is easily doable. I'm even running Memcache on the same box for the Xenforo installs.

One thing I'm not sure about is how much disk space you need, but if it's just a forum and not a lot, this could work out well for you. I would be willing to help you tune stuff if you're not sure what to do. Just let me know. :)
 
Ghan... consider me unpersuaded. :LOL:

I mean, mysql optimization is essentially a numbers game. You want to allow x number of users with y resources, so you tweak all the variables to try and get the memory/connection down to its lowest possible value. I think its a little bit of an apples to oranges comparison w/ vb vs xf, because they're completely different queries and architectures, but just the simple fact of commenting out skip-innodb in the my.cnf bumps the ram footprint substantially.

I'm doing about 11 queries/sec on the web server, peaking at 25-30/s.
Total possible mysql memory usage is currently 1.2 GB. I'm going to have to tweak this some once xf goes live.
Current memory load is about 950 MB. I actually have about 3GB allocated though, mainly due to elasticsearch. There's also a spike when backups run.
 
Well, my MySQL server is averaging 40 queries per second and it is not having issues. This is even with a mixed MyISAM and InnoDB workload, which is a restriction that you would largely not have by only running one Xenforo install.
Part of the reason that this works so well is I think because Linode runs with good quality hardware, including RAID 10 disk. So here's my analysis:

Right now you probably have the InnoDB buffer pool as the vast majority of your RAM allocation, with the key cache being very low since it only applies to MyISAM, and you also have some RAM allocated for the query cache. If you moved to a VPS with less RAM, then you would probably have to lower the InnoDB buffer pool. Fair enough. However, if you have the disk to handle your workload for the times when the cache is missed (which should still remain low) then the server should still be able to perform very well.

Please correct me if I misunderstand something about your setup, but based on what I've read this seems completely reasonable and well within the realm of possibility.
 
I think budget should be based on income - at least to a degree!

That is, if it's a hobby site and all your visitors are getting a free lunch, you can probably get away with looking for the most inexpensive host for the dollar.
But if you have paying clients and make a decent buck from the web site then your clients and advertisers deserve a little better.

Our board is somewhat similar in size and we had a 3.0 dual core pentium with 2 Gig maxed out when we went over about 450-500 users. That was a dedicated machine. Things would go fine until we hit that level, then degrade quickly. We solved it by going to a quad core 2.5 and 4 gig ram - which now easily holds up to 700 users without even breaking a sweat.

Based on that, I think a low end dedicated with even a dual core would do the job for you...if you don't intend to grow quickly. You should look at the webmaster tools in your goog analytics and see the speed of your site - if you are faster than 60% or so of internet sites, you are probably on the right track.

Edit - I'm showing 91 queries per second in the last day or so - which means we probably hit 150-200 in our busiest days as an average. Our current forums are probably inefficient in the queries department....that is, they use too many.
 
Closing in on 1M posts
~350 peak users (incl visitors and bots)
Mysql 5.1
PHP 5.2
APC opcode cache
~2GB ram
Centos 5
Self-hosted DNS, email, etc.
$1300/yr

We started out on shared hosting, moved on to a low-end VPS, upgraded the VPS periodically as we ran out of ram, finally got to the point where we were ok on ram, but had problems with disk I/O, so upgraded to a higher tier (hybrid) VPS with better hardware. We've been there for about 18 months.

So what's your setup, and why?
Hi Shawn:
couple of notes,
Switching to mysql 5.5 will help with innodb. For instance being able to adjust the IOPS rate based on the VPS's drive configuration. Should totally eliminate any I/O wait cycles. Older versions of mysql usually have it locked at 100, because it was compile time option.
There were no improvements made to MyISAM in v.5.5.
I find it odd that you would need 2GB of ram to support your workload.

I am a fan of KnownHost, http://www.knownhost.com/vps_packages.html they have great support, multiple data centers, and never had any downtime. Right now they have a promo deal to get 15% off lifetime, so you could get a managed VPS on a new box, with the same configurations for $970 a year.

Or you could downsize a little and save more money.
 
and never had any downtime. .

What does never mean? How long have they been in business?

I think you have to spell it out when it comes to metrics such as that.
I think that we had about 20 hours down in the last 12 years - all at one time due to a blown power supply in a server...back when I was one of only a couple dedicated servers in a small ISP.

Of course, this is another spec that may not matter for some sites. If good enough is good enough, then one can save money.

Backup is an important part of the deal too. How many are done....to where? How easy is it to access the backups?
 
I'm actually on a Knownhost HY1 VPS. As far as I can remember, we had a couple of hours of downtime about two years ago. There was a problem with a switch. It either rebooted itself or was manually restarted, and when it came back up, the configuration was corrupt. It was actually a problem at the datacenter level, though. It wasn't Knownhost's equipment. They advertise 99.995% across 100 servers, so that works out to about 27 minutes per year.

Good to know about MySQL 5.5, since the biggest potential issue with our current setup is IO bottlenecks. I was planning on upgrading, but haven't gotten around to doing it. I'll have to move that up the list.

Our host says they backup our stuff every other day, but I do my own nightly offsite to a second provider. That's really one of my biggest worries, and why I'd want RAID-1 on any dedicated server. I maintain a disaster-recovery type document that keeps track of all the installed software on the server, config information, compile switches, etc... but even still, there's a lot of time involved in setting all that stuff back up.

Linode is pretty interesting as far as VPS providers go. They give you a little more control at the (virtual) hardware level, including a GUI with a partition editor. I thought it was cloud-based at first, but they do say that one VPS is associated with one physical server.
 
Yeah, they call themselves the Linode Cloud, but they are really just VPSes at the core with some interesting cloud-like features such as IP sharing and node balancers.
 
Debian Linux --- vs --- Cent OS

Even out of the box, before you even tweak it, Debian Linux will use less resources then Cent OS. Once tweaked, it's still going to use less overall resources then a tweaked Cent OS installed.

MySQL 5.5.20
PHP 5.3.10 (php5-fpm & php5-apc is wonderful)

Originally used vBulletin 4 Suite with over 200+ modifications, templates, add-ons, and other little tweaks. And with 200 members online at the same time (not counting bots or guest). Slapped on a copy of IPB, WordPress, and phpBB along side..... Mostly using innodb with some myisam (so mixed).

So resources was something that needed to be taken into account.

Total ram used (server processes + site processes, a little under 1 GB).
CPU almost not even touched.

Debian is your friend. ;)
 
+1 to linode.

I am running 2 512MB servers (web side and DB side) and constantly have 120-150 people online. APC installed on the webside doing all the op code caching and memcached installed on the DB side for everything else. I will check out how many queries/sec I am currently running, but running the 2 servers basically doubled the disk I/O for the site. I think I could double my users and still be able to run my current hardware setup. I am usually in the 6-8% cpu in the web side and 2% on the DB side.
 
What does never mean? How long have they been in business?

I think you have to spell it out when it comes to metrics such as that.
I think that we had about 20 hours down in the last 12 years - all at one time due to a blown power supply in a server...back when I was one of only a couple dedicated servers in a small ISP.
6 years and the server has had 0 downtime. I am not saying KnownHost is never had down time, they have, and when they do they get right on it, and fix the issue right away.

You can always set you own rules as to how often you want to do Incremental / Full backups. Set your own cron job rules. And for the most part with forums you really only need to backup the databases & attachements directory. Have a known full working copy of the forum software + all your mods safely stashed elsewhere.
 
I would go with a low end dedi with centos as thats what your familiar with.

As I pointed out previously, one of your main concerns between the two was the difference in "consumer level" and "enterprise level" hardware.

Pretty much nowdays, the only difference you will see will be a price tag increase and in the case of hard drive failure in a raid environment, the enterprise level hard drive will rebuild slightly faster (we are taking minutes, not hours).
 
As you need lots of IO, go dedicated. Too few VPSes are sold with guaranteed IO speeds or defined limits

It's possible that this is exactly because of limits imposed by the current host and might not be such a problem with a less restricted or higher quality VPS provider. I find it really hard to believe that a Xenforo board with 350 concurrent users is I/O bound if you have MySQL tuned correctly.
 
Top Bottom