Luisito: Apache2 Cache

Giornata dal traffico impressionante. La cache che ho configurato su luisito per www funziona ma sicuramente va ottimizzata.

Luisito è una macchinetta molto meno potente di veleno (su cui gira www) ma deve fare solo da proxy+cache. La scelta è riacaduta per vari motivi su Apache2 lasciando al secondo posto squid, ma non è detto che si provi un giorno anche con quest’altro :-)

Attualmente apache2 gira con il mpm_prefork che come in apache(1) esegue un processo per ogni client. E’ stato però introdotto il parametro ServerLimit che costituisce un vincolo per il parametro MaxClients. In questo modo non c’è bisogno di ricompilare apache per avere più di 256 clients (prima l’hard limit era “cablato” nei sorgenti).

In questi ultimi giorni il numero di client supera spesso i 512 e abbiamo impostato il valore a 800. Preso dall’euforia verso mezzogiorno, con più di 40MB di banda smazzati, ho portato il numero di client a 1024. Dopo non molto la macchina era praticamente collassata per le troppe risorse allocate sotto il grosso traffico. Unica soluzione per riuscire a domare la situazione è stata quella di collegarsi al catalyst e fare lo shutdown della porta, solo dopo questa operazione sono riuscito a collegarmi nuovamente a luisito dalla seconda scheda di rete e a rivviare apache2 con un ServerLimit più basso.

BTW, mi sono accorto proprio ieri che con apache2ctl, dopo una modifica di tale parametro, bisogna fare uno stop e poi uno start (TERM); un restart (HUP), o un graceful (USR1) non sono sufficienti.

Mi sono anche deciso ad utilizzare la seconda scheda di rete di luisito per il traffico verso veleno in modo da dividere il traffico (ormai elevato) tra le due interfacce.

20040326-luisito.inter.it-if_eth0-day.png