December 8
Ci sono molte ragioni per cui alcuni progetti di programmazione, come ad esempio PHP Thrift, sono significativamente lenta. Le cause possono essere problemi di hardware e sistemi operativi, problemi di configurazione di run-time e problemi di configurazione di compilazione. Tutte queste cose devono essere affrontate per mantenere il vostro server Apache sempre attivo e funzionante in modo efficiente. Non riuscendo a risolvere uno di questi problemi, tuttavia, può risultare in continuo calo delle prestazioni del server Apache e degrado significativo della velocità durante il caricamento vostri progetti.
1 Eseguire l'ultima patch di rilascio e la sicurezza del sistema operativo sul server; Di solito è la versione più stabile. Molti miglioramenti significativi delle prestazioni sono stati aggiunti gli stack di comunicazione e le librerie di thread di diversi sistemi operativi esistenti, in modo da aggiornare alla versione più recente contribuirà ad accelerare le prestazioni del server.
2 Applicare il codice qui sotto al server, in modo che disattivare il servizio dominio di rete o DNS, ricerche ad eccezione di html e file .cgi. Ciò consentirà il progetto per caricare più velocemente perché fanno solo le richieste in base ai criteri indicati:
HostnameLookups off
<File ~ "(html | CGI). $">
HostnameLookups su
</ File>
3 Incollare il seguente codice per attivare "FollowSymLinks" e "SymLinksIfOwnerMatch" sul progetto per almeno controllare i controlli supplementare svolto sul percorso DocumentRoot:
DocumentRoot / www / htdocs
<Directory />
Opzioni FollowSymLinks
</ Directory>
<Directory / www / htdocs>
Opzioni -FollowSymLinks + SymLinksIfOwnerMatch
</ Directory>
Questi controlli supplementari sono inutili e possono realmente rallentare il caricamento del tuo progetto PHP.
4 Disabilitare la funzione "lingering_close" in http_main.c directory del vostro server, ma fare molta attenzione in questo modo, perché questa funzione è necessario per l'implementazione sicura del progetto PHP:
lingering_close void (int s)
{
char junk_buffer [2048];
/ Spegnere il lato di invio /
shutdown (s, 1);
il segnale (SIGALRM, lingering_death);
allarme (30);
for (;;) {
selezionare (s per la lettura, due secondo timeout);
if (errore) break;
if (s è pronto per la lettura) {
if (lettura (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
rompere;
}
/ Solo buttare via tutto ciò che è qui /
}
}
vicino (s);
}
Questo è più di un ultimo ricorso trick e in alcune situazioni non si applica affatto. E 'solo uno di quegli strumenti che aiutare o rompere il vostro codice.