From a quick look they start at around $99/mo (excluding specials etc...) You would have to find a VPS that allocated two full 2Ghz cores JUST to your VPS (and 2GB ram, etc...) and then you're still in a shared environment.
Keep in mind that Magento is pretty resource heavy, I agree you should look to optimizations first and see where that takes you.
I host 10 sites on the same ded. server and 100tb (hosting company) told me that the cause for the whole server to be slow is a problem in my video site's code.. I'm planing to fix this soon, but it can take 1-3 months.
I can't afford to have my ecommerce site (the magento one..) slow for that much time, that's the reason Im looking for a vps..
My current server specs:
Intel Quad Core Xeon 3220 - 4 x 2.40GHz
* 2 x 500GB HDD
* 8GB RAM
* 1 GigE (1000Mbit) dedicated port
* 100TB monthly transfer
* Unmetered Bandwidth (324TB) + $399/mo
Magento runs fine on a VPS, disk speed is important though. We have many clients who migrated from a dedicated/shared hosting to our cloud. Because of the disk speeds (SAN) they all have a much quicker site now.
Good luck with your search! Go with a provider which is known to have good disks speeds (iops/seeks, not throughput).
YISP - High Bandwidth dedicated servers and colocation in YISP-AS(Amsterdam)!
I ran the "iostat -x 10 2 " and it came back as the attachment shows. Does it say anything to you?
thank you again
Hi, yes. In the last column (util%), it shows very little utilization currently (3.34%) in the second row, that shows the 10 second average for when you ran the test. The running average since the system booted was at 11.57% however, so I'm thinking you ran this when the disk was not under heavy stress, since the current utilization is so much lower than the average utilization. That said, 11% average utilization is not particularly high, so it should be fine. I do see that only SDA is being used, SDB is completely idle. If you do have disk performance problems at some point in the future, you could help that out dramatically by moving some of your often requested files or possibly move your mysql database onto the second drive.
As to the other stats, up near the top it shows the cpu use. You've only got about 65% idle cpu, which would be perfectly fine if this command were run during peak times. However, I suspect that it's not. If during peak times, idle cpu gets really low like 20% or less, then that would account for your performance problems. Right now, the i/o wait % is only 1.21%, meaning that the disks aren't holding back your other programs. However, if that value got higher, say, 20% or more during peak times, then I would think that your disks are causing the performance bottleneck.
From just the information you've shown so far, it's possible that you're running out of apache slots during peak times, *or* you're running out of processing power during peak times.
What settings do you have in your httpd.conf for things like maxclients, keepalivetimeout, timeout, maxrequestsperchild, and maxkeepaliverequests? The best settings for keepalivetimeout is 1, but the default is much higher, and accounts for a major reason why webservers respond slowly during peak periods, even if nothing is using up a lot of cpu. Maxrequestsperchild I usually put at 100, and maxkeepaliverequests at 20, again, the defaults are much higher and suboptimal. Maxclients is something you should tweak, but not until you know how much ram is in the system and also how much ram each apache slot is using (which varies a lot system to system)
If you could run "top -n 1" and paste the results here, it would give me a better idea of how many maxclients would be appropriate for your server. Having an optimal value here can also avoid issues where the server is not maxing out on any resources but is still running slowly.
I ran the iostat test again today with a number of users next to the maximum (the server goes down everytime we reach more than 274 users on my videos site). I didn't come very different from yesterday.
I also ran the "top -n 1"
the other pic is a print screen of what I think is the maxkeepalive settings.
First off, if this is during peak times, then the server doesn't look overloaded. 7% disk utilization is very low, and 68% idle cpu is also very good. You're also not in danger of running out of ram any time soon, as your "top" shows 7gb out of 8gb ram is just being used for caching, which essentially means that almost all of your ram is free.
If you are seeing slow site performance during load levels similar to what you're seeing here, you're almost certainly running out of apache slots. If you have cpanel, log in to whm, and click on "apache configuration" and then click "global configuration". You should see the following options:
Whatever they're currently set to, I would change it to the following:
MaxRequestsPerChild -- set to 100
Maxclients -- set to 100 more than its currently set to
ServerLimit -- make sure this is at least as high as MaxClients
KeepAlive -- on
KeepAliveTimeout -- set to 1
MaxKeepAliveRequests -- set to 20
TimeOut -- set to 30
Looking at the way php is loading in "top", showing "php <defunct>" that means it's loading php as a cgi. To make that go a lot faster, you would want to load it as an fcgi instead. However, since you're not running out of cpu time, we can leave this alone for the time being as it doesn't appear to be your bottleneck.
Without taking a direct look at your server, those seem like reasonable values. The exact best value for maxclients will vary depending how much ram each apache client is taking up, as well as how much of the system's ram is available for apache. Anywhere from 50 to 500 max clients could be appropriate depending on this, so it's hard to give a good one size fits all answer there.