Mysql
 sql >> Database >  >> RDS >> Mysql

Migliori pratiche per ottimizzare la velocità dei siti LAMP?

Ecco alcune cose da fare personali che ho sempre impostato nelle mie applicazioni LAMP.

  • Installa mod_deflate per apache e non usare i gestori gzip di PHP.mod_deflate ti permetterà di comprimere contenuto statico, come javascript/css/static html, così come il solito output dinamico di PHP, ed è una cosa in meno di cui devi preoccuparti nel tuo codice.

  • Fai attenzione con i file .htaccess! Abilitare i file .htaccess per le directory nella tua app significa che Apache deve scansionare il file system costantemente, alla ricerca di .htaccessdirectives. È molto meglio inserire le direttive all'interno della configurazione principale o di una configurazione vhost, dove vengono caricate una volta. Ogni volta che puoi eliminare un file di accesso a livello di directory spostandolo in un file di configurazione principale, risparmi tempo di accesso al disco.

  • Prepara il databaselayer della tua applicazione per utilizzare un gestore di connessione di qualche tipo (io uso un Singleton per la maggior parte delle applicazioni). Non è molto difficile da fare e la riduzione del numero di connessioni al database aperte dall'applicazione consente di risparmiare risorse.

  • Se pensi che la tua applicazione vedrà un carico significativo, memcached può fare miracoli. Tienilo a mente mentre scrivi il tuo codice... forse un giorno invece di creare oggetti al volo, li riceverai da memcached. Un po' di accortezza renderà l'implementazione indolore.

  • Una volta che l'app è in esecuzione, imposta il tempo di query lento di MySQL su un numero ridotto e monitora il log di query lento in modo diligente. Questo ti mostrerà da dove provengono le tue query problematiche e ti consentirà di ottimizzare le tue query e gli indici prima che diventino un problema.

  • Per seri tweaker delle prestazioni, vorrai compilare PHP dal codice sorgente. L'installazione da un pacchetto installa molte librerie che potresti non usare mai. Poiché gli ambienti PHP vengono caricati in ogni istanza di un thread Apache, anche un sovraccarico di memoria di 5 MB da librerie extra diventa rapidamente 250 MB di memoria persa quando ci sono 50 thread Apache inesistenti. Conservo un elenco della riga mystandard ./configure che utilizzo durante la creazione di PHP qui e trovo che sia adatto alla maggior parte delle mie applicazioni. Lo svantaggio è che se finisci per aver bisogno di una libreria, devi ricompilare PHP per ottenerla. Analizza il tuo codice e testalo in un ambiente di sviluppo per assicurarti di avere tutto ciò di cui hai bisogno.

  • Minimizza il tuo Javascript.

  • Preparati a spostare il contenuto statico, come immagini e video, su un server web non dinamico. Scrivi il tuo codice in modo che qualsiasi URL per immagini e video sia facilmente configurato per puntare a un altro server in futuro. Un server web ottimizzato per contenuto statico può servire facilmente decine o addirittura centinaia di volte più velocemente di un server di contenuto dinamico.

Questo è ciò che riesco a pensare dalla parte superiore della mia testa. Cercando su Google le migliori pratiche PHP troverai molti suggerimenti su come scrivere anche un codice più veloce/migliore (ad esempio:echo è più veloce di print ).