Dopo essermi grattato la testa cercando di capire perché il mio sito stava rispondendo così lentamente anche se le risorse del server sono a posto, ho finalmente controllato lo stato di Apache e ho trovato:
78 requests/sec - 0.7 MB/second - 8.5 kB/request
256 requests currently being processed, 0 idle workers
Sembra che il mio apache sia letteralmente al massimo con connessioni. Chiunque provi a visitare il mio sito viene inserito in una "lista di attesa" fino a quando Apache non è nuovamente libero.
Sembra che ho due opzioni.
A) Aumentare il limite massimo di connessioni al di sopra di 256. Sebbene in questo articolo non sia così semplice:
Per impostazione predefinita, il parametro MaxClients ha un limite fisso di 256. Questo può essere modificato ricompilando Apache. Alcune distribuzioni o società di hosting elevano questo limite a un valore molto elevato, come 512 o addirittura 1024 per far fronte a grandi carichi.
B) Individua gli script che impiegano troppo tempo. Questo mi sembra molto più complicato, dal momento che la maggior parte dei processi di apache appaiono e scompaiono di nuovo. Inoltre, gli script PHP dei miei siti sono ottimizzati abbastanza bene ... e ancora una volta, le risorse del server vanno bene:
Server load 2.69 (8 CPUs)
Memory Used 25.33% (2,039,108 of 8,048,804)
Swap Used 1.32% (54,156 of 4,095,992)
Quale opzione (se una delle due) dovrei scegliere e come dovrei farlo?
MODIFICARE
Ulteriori informazioni: Versione server: Apache / 2.2.23 (Unix) mod_ssl / 2.2.23 OpenSSL / 1.0.0-fips DAV / 2 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635
Configurazione HTTP: http://pastebin.com/yBeLt6mP
Esempio di richiesta parentale: http://pastebin.com/vzUVDMPR
Attiva / disattiva l'involucro del testo se i raccoglitori di pasta vengono visualizzati in modo strano.