How much VPS ram would I need to run Wordpress, Apache, SVN & MySQL?

Does anyone have a ballpark figure of how much VPS ram (without burstable) I would need to have apache with wordpress and subversion as well as the MySQL instance?

Apache would host a couple of sites and SSL. MySQL would have just the Wordpress database. These sites are low traffic, less than 1k hits a day.


Solution 1:

Take in mind that each apache worker will consume about 20-25MB, so if your 1k hits would be equally spaced in time in 8 hours per day you can think about having to serve only 0.03 requests per second.

Assuming you have all you traffic concentrated in only 1 hour in the day (it isn't of course), you should have to serve about 0.28 requests per second.

An other issue is how much memory got you DB, it is simple to know however, and it is quite a fixed cost.

In the worst case you will have to transfer the entire DB (oh my god!, refactor you SQL in this case! :) ) .. so double the previous number..

The short answer is (IMHO) 128MB will suffice, abundantly. You server will be idle and memory will be free for a long time, given the traffic you are imagine.

I have 20 domains into a VPS with 256 MB since 3 years, the are ok ... and the total hits are about 1500-2000 ...

OK, memory is cheap nowadays, but guys ... are you aware of how much is one gigabyte ?

PS: I'm talking about a linux system of course, not about OS consuming 4GB for the gui only :)

Solution 2:

For the low-traffic usage you are describing, you should be fine with a small plan (256MB - 384MB). When Apache and MySQL are installed their default configs assume they are working with more RAM available to them which can cause problems. Use the following as a good starting point and adjust as necessary:

In your Apache 2 configuration file (typically found at /etc/apache2/apache2.conf or /etc/apache2/httpd.conf):

StartServers 1
MinSpareServers 3
MaxSpareServers 6
ServerLimit 24
MaxClients 24
MaxRequestsPerChild 3000

In your MySQL configuration file (typically found in /etc/mysql/my.cnf):

key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K

Also, if you don't use InnoDB tables, you should disable InnoDB support by adding the following line:

skip-innodb