Sto gestendo un sito a traffico intenso con molti contenuti dinamici, per lo più generati dagli utenti.
Il server è dedicato e dispone di un totale di 4 processori Intel (R) Xeon (R) CPU X3210 a 2,13 GHz. Devo conoscere i valori ottimali per le direttive apache ServerLimit e MaxClients, considerando che il server ha 4 GB di RAM e il database MySQL funziona su un server separato. Il pannello è DirectAdmin con CentOS.
Di seguito sono riportate le mie direttive attuali, ma durante le ore di punta con oltre 5k utenti, si nota un ritardo importante - e non è del tutto colpa di MySQL, perché le pagine sembrano essere generate velocemente (ho implementato un contatore del tempo di generazione della pagina), ma c'è un lungo ritardo della connessione fino a quando la pagina non inizia a rispondere e non viene inviata al browser.
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
Dovrei menzionare che il monitoraggio del server utilizzando il comando top, l'utilizzo della CPU non va mai oltre il 20% ~ 30% nelle ore di punta. Il server MySQL ha anche un utilizzo del 30 ~ 50% in quel momento, e lavoro costantemente per risolvere le query lente, ma questo è un problema diverso. So che non è un collo di bottiglia del DB perché anche le pagine statiche impiegano molto tempo a caricarsi nelle ore di punta.
Eventuali suggerimenti per ottimizzare questi valori saranno molto apprezzati, grazie.