20. Implementing APC
• The Biggest/Cheapest Win
• Install via apt-get, yum, or pecl
• Monitor with apc.php
• Lots of modules? Bump the SHM size
• Enable apc.stat=0 with caution
25. Pressflow
• “Pressflow Makes Drupal Scale”
• Drop-in Replacement For Core
• Backports many Drupal 7 features
• PHP 5.x/MySQL 5.x Required
• Enables robust reverse-proxy, mysql replication and more
• Runs drupal.org and many other high-performance sites
30. CacheRouter
• Use settings.php to plug in cacherouter instead of /includes/cache.inc
• Pick your poison: APC, XCache, Memcached, Filesystem, or classic db
caching.
• Change caches per table.
• Vital for high-speed logged-in pageloads.
31. Coming Soon: Advcache
• Cache Nodes, Users, Taxonomy Terms and other common objects via
cacherouter.
• Extends the notion of drupal’s static cache to whole objects.
• Still in development, but if you’re into writing patches...
32. Other Tips
• Search is among the slowest and most expensive queries. Use Solr
instead.
• InnoDB can help with locking in MySQL
• Hardware is faster and often more cost effective than code cleanup.
• Monitor load and scale ahead of problems.
33. Benchmarking/Profiling
• Cachegrind to profile code.
• Jmeter to simulate load.
• Slow Query logs, cactai, etc.
34. Vertical/Horizntal Scaling
• Start with all services you need.
• Separate services into layers.
• Add more servers at each layer as needed.
• Shameless plug: Project Mercury: http://getpantheon.com