Forum Moderators: phranque
So the question is, what is my next move?
Do I get some caching system? (cant use the mmCache / APC cause they frequently crashes my apache)
Do I get a better speced webserver?
Do I get 2 webservers and load balanced?
Do I get hardware load balancing or dns load balancing?
Do I get a private rack?
Note that the database server has to be somehow connected to the webservers.
Please give your opinions, thank you :)
Anothe factory could be that you have severe memory leakage.
Are your connections closed after using them? Are you destroying your objects?
Have youoptimized all your queries for efficiency?
Using indexes wherever possible?
all these things cut down on the hit to the server memory.
First, you should examine your database schema and make sure that you have all the indices you should. One index can make a world of difference.
If that doesn't save the day (or buy you more time) than consider a database upgrade. MySQL will use extra RAM for query caching. If your queries are well designed, it can save a ton of time on reads.
Next, you really shouldn't move forward without specific analysis of your systems - hardware and software. There are many directions to go to improve performance and some will work in certain situations and some won't.
If your site is filled with db reads and your pages have a ttl of a couple minutes, you might consider putting Squid in front of the web server as a reverse proxy. A single CPU with 4 GB of ram can make an enormous load with Squid.
Reveal a few more details about your website and I'll try to help.
Move DNS off the webserver. And remove FTP if you can. It won't save the day, but I believe that web servers should serve the web and that other servers can do the other things.
Also, 2GB might be too little for the webserver. Tune down the MaxRequests to defeat any hidden memory leaks and reduce the MaxClients and corresponding Min/MaxSpare configs. Reduce the amount of memory needed. Heck throw another 2GB in the box for grins.
I assume since it's so successful you've got budget.