What are some good modules or systems that for caching that I can use for decreasing my load on Apache on an EC2 server running PHP, and why would you choose them?
|
Here are some popular, industry standard techniques to increase your speed. You can try them out depending on your exact configuration: MemcachedMemcached is a general-purpose distributed memory caching system that is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read. Varnish CacheVarnish is an HTTP accelerator designed for content-heavy dynamic web sites. In contrast to other HTTP accelerators, such as Squid, which began life as a client-side cache, or Apache, which is primarily an origin server, Varnish was designed from the ground up as an HTTP accelerator. Mod_pagespeedPage Speed is a tool and library that identifies improvements that can be made to web-sites to improve their latency. mod_pagespeed automates the application of those rules in an Apache server. HTML, CSS, JavaScript, and images are changed dynamically during the web serving process, so that the best practices recommended by Page Speed can be used without having to change the way the web site is maintained. http://googlewebmastercentral.blogspot.com/2010/11/make-your-websites-run-faster.html HBaseHBase is an open source, non-relational, distributed database modeled after Google's BigTable and is written in Java. It is developed as part of Apache Software Foundation's Hadoop project and runs on top of HDFS (Hadoop Distributed Filesystem), providing BigTable-like capabilities for Hadoop. That is, it provides a fault-tolerant way of storing large quantities of sparse data. Cheat on Slow-StartSlow-start is part of the congestion control strategy used by TCP, the data transmission protocol used by many Internet applications. Slow-start is used in conjunction with other algorithms to avoid sending more data than the network is capable of transmitting, that is, to avoid causing network congestion. http://blog.benstrong.com/2010/11/google-and-microsoft-cheat-on-slow.html |
||||
|
|
|
cwd's answer is excellent, just add a PHP opcode cacher (APC, eaccelerator, xcache) if the processing is PHP-heavy. |
|||
|
|
|
+1 to cwd for the If your goal is to reduce the load on Apache, and assuming Apache is the front-line daemon receiving HTTP requests (i.e. there's no cache between the user and Apache) you should be giving a lot of attention to client-side optimization, specifically reducing page weight and reducing the number of requests needed to load a page. It's going to maximize client-side caching using expiration headers etc. without you needing to tune the Apache configuration in detail, which is a win. It might be good to do some of the other optimizations (combining or bundling CSS and Javascript files to reduce the number of each needed to build the page, CSS image spriting to reduce the number of images loaded per page) on your own to reduce the load on You can look at Google's Page Speed tool (linked from the |
|||
|
|