Hi guys,
We are running a large website and expect for more visits in the next feature.
Currently we are using one server with the following configuration:
- squid (that caches and serves all the static files)
- web server with xcache, memcache and authcache for anonymous.
What do you recommend to have for a better performance?
I'm thinking at the following idea:
1. have squid on a separate server that will cache all the static files
2. have two or more back-end servers and use squid to delegate the requests to these servers
3. have mysql running on one server
My concern is on #2.
How can I run the same website on two or more servers?
Do I have to sync the sources or could I share the sources between the servers.
Let me know your ideas, any other idea to improve the performance is appreciated.
Thanks
Comments
more details requeired
For motivated suggestion more information is required
what type of traffic you got? ratio for anonymous/loged users will be very well here
do you have objects(pictures, flash, java)? - if yes, you need to check for user side cache and may by CDN if you have dynamic changes in objects
specially you need to provide more information about current server resources(memory, CPU, I/O) usage.
What process consume bigger resources usage?
which resources are close to server limits?
examples:
1. you have mostly anonymous traffic - use boost and CDN, it will lower server load dramatically
2. you have mostly loged users - definitely separate MySQL. You need to more than one web server in case if your web server too slow because of huge CPU usage by php processes.
Network file system is simples solution for two or more servers. rsync is solution if you have not "user" data which can changed every sec by many users.
Again, to get bigger effect from optimizations, my suggestion is to understand what is your weakness before to do something.