19th Street Design is now Greg Willis Industries!
Head on over to the new website for updated information and the new contact form. I'll keep this old website up until the summer of 2012. Make sure you update your links to the new site. Thanks!
Drupal Tuning
One of the reasons I opted for moving all my sites to a VPS was to be better able to control parts of the web server that hosted servers can't let you touch -- the Apache server, the MySQL server, things like that.
If I were just creating HTML pages, I wouldn't have make the change. But having a database-driven website, while opening up wide possibilities, also introduces performance issues. When I finally got Gallery2 running on my current setup, the whole thing slowly ground to a halt. But after tweaking the PHP, Apache and MySql config files, it hummed along better than before.
And I can't emphasize enough that you can gain wonderful quickness just by using Drupal's performance settings (admin/settings/performance). Especially with D6, it can be quick as a bunny.
One of the most useful sessions at the Do It With Drupal conference in Dec 08 was Matt Westgate & John VanDyk session on Performance and Scalability. In brief, here's an outline of what they discussed:
- APACHE
- enable mod_expires (allows for browser caching)
- set [MaxClients] = RAM / Average Apache process memory size
- set [KeepAliveTimeout] to 2 (or maybe 5)
- PHP
- OpCode CacheAPC or E-accelerator (caches compiled PHP)
- set php.ini memory limit to 75M (?!)
- install memcache module
- benchmark "ab -n 1000 -c 10 http://[website]/"
- MYSQL
- set query_cache_size 32M
- enable slow queries (log_slow-queries = /var/log/slow_log, log_query_time = 5)
- log_queries_not_using_indexes
- CRON
- use it
- DRUPAL
- cacheing
- CSS aggregation
This is covered in their book Pro Drupal Development, if you'd like more detail.
And here's some sources I've found on the Internets that deal with Drupal performance: