

My last post on this subject was just a collection of notes. I've edited it down to a list of actual things that should be done to improve Drupal performance.
In descending order of importance:
Handle 404 errors better.
always add this directive to .htaccess:
<FilesMatch "\.(png|gif|jpe?g|s?html?|css|js|cgi|ico|swf|flv|dll)$">
ErrorDocument 404 default
</FilesMatch>
There is no need for Drupal to return a 404 error for these objects! Most of the time these requests happen in the background anyway, so a Drupal-rendered page is not needed.
apc.shm_size from default of 32MB to 48MBshm_size limits in OS layerapc.filters = "+inc$,+php$,-admin,-sites/all/modules"If you're stuck using mod_php:
Keep as many idle PHP interpreters hanging around for as long as possible. Example config (tune to server resources):
StartServers 40
MinSpareServers 40
MaxSpareServers 40
MaxClients 80
MaxRequestsPerChild 20000
i.e. Start at 40 child processes, stay at 40 even when idle, burst up to 80 in heavy load.
If you tune Apache well, and remove all the unneeded modules, and install a PHP op-code cache/accelerator, then you can make each Apache process take as little as 12 MB.
Table_locks_immediate and Table_locks_waited status variables: SHOW STATUS LIKE 'Table%';