High Performance Apache

Wednesday, 04 February 09
Qualche giorno fa come molti di coloro che leggono questo blog sanno ho configurato le macchine di LLOOGG. Ovviamente la configurazione di Apache di default non scala molto, e' un compromesso tra prestazioni e la previsione che sulla macchina media ci siano altri processi da preservare. In realta' in molte situazioni high-load i web server fanno solo da web server, ovviamente :)

Ecco dunque la configurazione che ho usato. Spero possa far comodo a qualcuno:
Timeout 30

ServerLimit 1000 <IfModule mpm_prefork_module> StartServers 50 MinSpareServers 25 MaxSpareServers 500 MaxClients 1000 MaxRequestsPerChild 0 </IfModule>
E' anche necessario mettere da qualche parte nei file di avvio dei server la seguente riga:
echo 1024 >  /proc/sys/fs/epoll/max_user_instances
Altrimenti i processi di Apache non avranno abbastanza risorse da parte del sistema operativo per gestire davvero tutti i client. Inutile dire che per gestire 1000 client bisogna far i conti con la memoria, se non ne avete abbastanza per cosi' tante istanze di Apache e' meglio mirare ad un numero minore, altrimenti in situazioni di alto traffico si possono avere problemi maggiori di quelli che si tenta di risolvere.

Inutile dire che e' stato necessario usare mpm-prefork perche' e' l'unico modello che mod_php gestisce in maniera stabile.
post letto 3978 volte (1.3 letture al giorno in media)
Postato alle 15:24:44 permalink | 4 commenti | stampa | posta | trackbacks

Commenti

max Scrive:
04 Feb 09, 16:55:33
ciao salvo, non so se hai esigenze specifiche che ti legano all'uso di apache, io ti consiglio caldamente di provare lighttpd
kalos Scrive:
04 Feb 09, 17:17:19
Purtroppo per situazioni high-load niente batte apache2 + mod_php, nemmeno nginx + fastcgi.
antirez Scrive:
04 Feb 09, 18:20:22
@max, @kalos: in realta' per LLOOGG ci vorrebbe una cosa verticale basata sul multiplexing, insomma no fork, no threads... ma questo e' il futuro per ora il collo di bottiglia e' la parte DB e stiamo scrivendo un DB apposito per quel tipo di carico di lavoro, molto probabilmente lo rilasciamo come free software perche' puo' essere una soluzione alternativa a memcached per chi cerca operazioni su liste e non solo su valori (il motivo per cui non stiamo utilizzando memcached).
Gianni Scrive:
21 Oct 09, 15:49:51
Ciao!
Non sono molto esperto e vorrei sapere dove inserire questa stringa:

echo 1024 > /proc/sys/fs/epoll/max_user_instances


Se possibile potresti dirmi anche come raggiungere il file indicandomi il percorso come per esempio quello del file di configrazione di apache che è 7etc/apache2/apache2.conf

Grazie!
Comments closed