sql >> Base de Datos >  >> RDS >> Mysql

¿Mejores prácticas para optimizar los sitios LAMP para la velocidad?

Aquí hay algunas tareas personales que siempre configuro en mis aplicaciones LAMP.

  • Instale mod_deflate para apache y no use los controladores gzip de PHP. mod_deflate le permitirá comprimir contenido estático, como javascript/css/html estático, así como la salida dinámica habitual de PHP, y es una cosa menos de la que debe preocuparse en su código.

  • ¡Tenga cuidado con los archivos .htaccess! Habilitar archivos .htaccess para directorios en su aplicación significa que Apache tiene que escanear el sistema de archivos constantemente, buscando directivas .htaccess. Es mucho mejor colocar las directivas dentro de la configuración principal o una configuración de host virtual, donde se cargan una vez. Siempre que pueda deshacerse de un archivo de acceso a nivel de directorio moviéndolo a un archivo de configuración principal, ahorrará tiempo de acceso al disco.

  • Prepare la capa de base de datos de su aplicación para utilizar algún tipo de administrador de conexión (yo uso un Singleton para la mayoría de las aplicaciones). No es muy difícil de hacer, y reducir el número de conexiones de base de datos que abre su aplicación ahorra recursos.

  • Si cree que su aplicación experimentará una carga significativa, Memcached puede hacer milagros. Tenga esto en cuenta mientras escribe su código... tal vez algún día, en lugar de crear objetos sobre la marcha, los obtenga de Memcached. Un poco de previsión hará que la implementación sea sencilla.

  • Una vez que su aplicación esté en funcionamiento, establezca el tiempo de consulta lenta de MySQL en un número pequeño y controle el registro de consulta lenta con diligencia. Esto le mostrará de dónde provienen sus consultas problemáticas y le permitirá optimizar sus consultas e índices antes de que se conviertan en un problema.

  • Si eres un experto en rendimiento, querrás compilar PHP desde el código fuente. La instalación desde un paquete instala muchas bibliotecas que quizás nunca uses. Dado que los entornos PHP se cargan en cada instancia de un subproceso de Apache, incluso una sobrecarga de memoria de 5 MB de bibliotecas adicionales se convierte rápidamente en 250 MB de memoria perdida cuando no existen 50 subprocesos de Apache. Mantengo una lista de mi línea estándar ./configure que uso cuando construyo PHP aquí , y creo que se adapta a la mayoría de mis aplicaciones. La desventaja es que si termina necesitando una biblioteca, debe volver a compilar PHP para obtenerla. Analice su código y pruébelo en un entorno de desarrollo para asegurarse de que tiene todo lo que necesita.

  • Minimice su Javascript.

  • Esté preparado para mover contenido estático, como imágenes y videos, a un servidor web no dinámico. Escriba su código para que cualquier URL para imágenes y video se configure fácilmente para apuntar a otro servidor en el futuro. Un servidor web optimizado para contenido estático puede servir fácilmente decenas o incluso cientos de veces más rápido que un servidor de contenido dinámico.

Eso es lo que puedo pensar en la parte superior de mi cabeza. Buscar en Google las mejores prácticas de PHP también encontrará muchos consejos sobre cómo escribir un código más rápido/mejor (como:echo es más rápido que print ).