it-swarm-es.tech

¿Cómo mejorar el tiempo de respuesta del servidor?

¿Qué puedo hacer, aparte de usar un complemento de caché como jotcache, para mejorar el tiempo de respuesta del servidor de mi sitio web?

Ya he eliminado todos los módulos, complementos y componentes de artículos inactivos, ¿hay algo más que pueda hacer para mejorarlo?

Estoy hablando de tiempo antes de que el cliente (navegador) obtenga una respuesta a su solicitud. Y no el momento en que se carga la página.

17
web-tiki

Hay varios pasos que puede seguir para aumentar el rendimiento del lado del servidor. Tenga en cuenta que algunos de estos no funcionarán con la mayoría de los hosts compartidos. Para un gran rendimiento, generalmente necesita un control más detallado.

Al igual que con cualquier optimización, debe medir el efecto que tiene en el rendimiento de su sitio. Para las optimizaciones básicas son útiles herramientas como PageSpeed y YSlow (recomiendo las versiones de Firefox). Para una comprensión más profunda, tendrá que medir los tiempos de respuesta reales de su sistema en vivo durante un período de tiempo.

PHP

  1. Habilitar almacenamiento en caché de código de operación

    Esto es probablemente lo más importante que puede hacer para aumentar el rendimiento de su sitio. Recomiendo usar OpCache o APC . La configuración de estos cachés se puede ajustar para obtener un rendimiento aún mayor en función de las necesidades específicas de los servidores y sitios, pero la instalación ya es un gran impulso.

  2. Actualización PHP versión

    Más reciente PHP versión viene regularmente con mejoras de rendimiento. Además, hay una serie de casos en los que Joomla puede usar un código mejor cuando se ejecuta en una versión más nueva PHP. A partir de hoy no debe usar una PHP versión anterior a PHP 5.4 si le importa el rendimiento).

  3. Configuraciones PHP

    En versiones anteriores PHP (<= 5.3) tenga cuidado de apagar register_globals y magic_quotes_gpc para ganar una actuación gratis. On PHP> = 5.6 change always_populate_raw_post_data a 1.

  4. Extensiones PHP

    Joomla contiene algún código para solucionar que falta PHP extensiones. Esto siempre será más lento que esas extensiones. Para una mejora de rendimiento decente, instale las siguientes extensiones: mbstring, Zip, ftp

Servidor web

  1. Habilitar gzip

    La habilitación de la compresión del lado del servidor intercambia ancho de banda para los recursos de la CPU. Para la mayoría de los sitios, esta es la decisión correcta. Tenga cuidado de comprimir solo datos de texto, comprimir datos binarios le dará el éxito de la CPU sin las ventajas de ancho de banda. También puede habilitar la compresión en la configuración de Joomla, pero es mejor si deja que el servidor se encargue de esto.

  2. Precomprimir recursos estáticos

    No estoy hablando de minficación (aunque esto también ayuda), pero puede configurar Nginx y Apache en el servidor de recursos ya comprimidos, eliminando efectivamente el golpe de CPU de la compresión gzip. Puntos de bonificación: Use Zopfli para archivos aún más pequeños.

  3. Use FastCGI para PHP

    Más específicamente, debe usar php-fpm. Esto evita que se inicie PHP cuando el navegador solicita un archivo que no sea PHP.

  4. Use los encabezados de caché apropiados

    El uso del encabezado Expires puede reducir en gran medida los recursos del servidor necesarios. Después de todo, la solicitud más rápida es la que nunca se hace.

Apache

En general, recomendaría usar Nginx para sitios de alto rendimiento. Si realmente necesitas usar Apache por alguna razón, recibí un consejo extra:

  1. Deshabilitar AllowOverride

    Establecer AllowOverride en None evita una gran cantidad de disco IO y

Joomla

  1. No use el modo FTP

    Si bien no afecta a los usuarios que leen el sitio, ralentizará algunas operaciones, como la instalación de extensiones.

  2. Desactiva las extensiones no utilizadas

    Esto se aplica especialmente a los complementos, muchos de estos se ejecutan en cada solicitud. Deshabilitar los menús y componentes es principalmente útil cuando se enumeran las extensiones y los tipos de menú disponibles. También tome 5 minutos para recorrer las extensiones que vienen con el núcleo de Joomla y deshabilite las que no usa.

  3. Desactivar Preparar contenido

    Si usa muchos módulos personalizados (mod_custom no personalizado como en auto escrito) verifique si puede deshabilitar Preparar contenido en ellos. Esto ahorra algo de procesamiento.

  4. Usar almacenamiento en caché

    Si te tomas en serio el rendimiento, querrás habilitar el almacenamiento en caché. Especialmente útil para leer sitios pesados ​​con muchos usuarios anónimos. Los usuarios con sesión iniciada omitirán la mayor parte de la memoria caché; si tiene muchos de estos, el efecto no será tan grande.

  5. Use un controlador de sesión alternativo

    Al usar un controlador de sesión alternativo, puede liberar su base de datos para cosas más importantes. No recomendaría el archivo (confusamente llamado None en la configuración de Joomla) ya que eso aumentará una vez más el disco IO. El uso de APC es potencialmente el fastet, pero aumenta el riesgo de perder todos los datos de la sesión. El término medio correcto es Memcache. Si bien esto requiere un proceso adicional, es más confiable que APC y mucho más rápido que almacenar todos los datos en la base de datos

  6. Mantenga su sitio simple

    ¿Realmente necesitas ese botón de Facebook? ¿Qué pasa con ese lindo ícono que nadie ve porque está parcialmente oculto detrás de un banner? Cuanto menos se muestre su sitio, más rápido será. Además, siempre que sea posible, use CSS3 en lugar de imágenes.

Diverso

  1. Establecer un favicon

    Gracias a un decisión que se remonta a Internet Explorer 4. los navegadores hacen una solicitud a un archivo llamado favicon.ico cada vez que un usuario visita su sitio. Si no tiene uno, esto causa un IO innecesario, ya que las respuestas 404 no se almacenan en caché. Especifique el icono de su sitio con una metaetiqueta HTML o agregue un archivo llamado favicon.ico a la raíz web. ¿No quieres un favicon? Coloque un PNG transparente con un tamaño de 1x1 píxeles en esa ubicación. Tenga en cuenta que la extensión aún debe ser .ico.

  2. Optimiza tus imágenes

    Es sorprendente qué tipo de ahorro se puede obtener al optimizar las imágenes, especialmente los archivos PNG. Hay una variedad de herramientas disponibles para cualquier sistema operativo, personalmente uso ImageOptim que está disponible para OS X. Las imágenes principales de Joomla ya están optimizadas pero pasan por tus propias imágenes, especialmente las plantillas son importantes. También puede verificar las extensiones que está utilizando. Si son de código abierto, ¿por qué no contribuye con una solicitud de extracción que contiene imágenes recién optimizadas?

El avanzado

Si realmente quieres hacer todo lo posible, considera poner Varnish en frente de tu sitio. Almacena en caché las solicitudes a su sitio y, si es posible, las atiende desde su propio caché, sin llegar a Joomla. Es una herramienta compleja pero con mucho poder. Joomla no aprovechará la funcionalidad avanzada como Edge Side incluye (ESI), pero su propio código sí podría.

25
Rouven Weßling

Una cosa GRANDE que puede hacer para mejorar los tiempos de respuesta para su sitio es actualizar la configuración de su módulo. Los módulos personalizados (que usan mod_custom) tienen una opción para habilitar/deshabilitar la preparación de contenido. Esto le permite ejecutar complementos de contenido en el contenido de datos dentro de su módulo personalizado. Es potente cuando se usa correctamente, pero agrega tiempo de representación adicional a la salida del módulo. A menos que realmente esté utilizando un complemento de contenido dentro del contenido de su módulo personalizado, es mejor desactivarlo. Verá una disminución en el tiempo de representación del módulo cuando haga esto.

Captura de pantalla de la configuración: enter image description here

Nota: Si mi respuesta lo ayudó, haga clic en el cheque a la izquierda para aceptar la respuesta.

13
Don Gilbert

Supongo que ha ejecutado su sitio a través de la velocidad de la página de Google, y de hecho está buscando reducir el tiempo de respuesta de la página, es decir, el tiempo que tarda su marcado en enviarse al navegador.

Los culpables más probables de esto son las consultas pesadas. Active la depuración y mire en la parte inferior de la página para averiguar cuáles son las consultas más pesadas y eliminarlas o reducirlas. También puede tomar la ayuda de los registros de consultas lentas de su servidor MySQL.

Lo siguiente que puede ver es el almacenamiento en caché. Dependiendo del tipo de sitio que tenga, puede activar el almacenamiento en caché conservador o progresivo. Progressive se debe utilizar en sitios que no tienen funciones relacionadas con el usuario.

8
Ashwin Date

Las cosas que sé que pueden ayudar (la mayoría de las cuales se han enumerado) son estas:

  1. Almacenamiento en caché
  2. Compresión (gzip sus archivos css y js)
  3. Combinación de archivos (todo su CSS se combina en un solo archivo)
  4. Descarga de imágenes y archivos en un CDN.

He usado una combinación del caché Joomla incorporado (o incluso APC habilitado en el servidor) y complementos como el plugin rockbooster de gzip o rocket theme. También utilizo el complemento CDN que no es número con una cuenta de Amazon.

Definitivamente ayuda, pero debe vigilar su sitio y deshabilitar el caché para los componentes que tienen problemas. Tuve que pasar por alto CiviCRM en nuestro sitio porque no funcionaba bien con el almacenamiento en caché. Joomla viene con un complemento de control de caché que puede manejar eso.

6
Brian Peat

También querrá considerar la reducción de los activos locales y el almacenamiento en caché adecuado. Una cosa que puede hacer es usar complementos de CDN. Aquí hay dos que recomendaría:

'corePHP' jomCDN - https://www.corephp.com/joomla-products/jomcdn

NoNumbers CDN para Joomla! - http://www.nonumber.nl/extensions/cdnforjoomla

Además, si ninguno de los anteriores parece resolver los problemas, es posible que tenga un problema más profundo, posiblemente dentro de su plantilla, el servidor mismo u otras cosas. Si ese es el caso, podría ser mejor contratar a alguien para que busque el problema y lo resuelva por usted.

4
Steven Pignataro

También puede usar este código en su archivo .htaccess:

RewriteEngine On
RewriteCond %{HTTP_Host}  ^www.your domain [nocase]
RewriteRule ^(.*)         http://your domain/$1 [last,redirect=301]
RewriteEngine on
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>

¡He creado más de cientos de sitios web usando Joomla!

En la mayoría de los casos, la gente piensa que Joomla está trabajando mucho en el servidor, pero según los análisis realizados por mí, lo más importante para mantener su sitio web RÁPIDO es OPTIMIZAR las IMÁGENES y JS/CSS.

No use editores de Joomla, como JCE, para cambiar el tamaño de la imagen. Use editores de imágenes como Photoshop o cualquier otro editor para cambiar el tamaño de sus imágenes al tamaño que necesita.

Utilice herramientas de compresión JS/CSS.

¡Siempre usamos Pingdom Tools para analizar la velocidad del sitio web y utilizamos la función integrada de T3 Framework para optimizar JS/CSS!

2
Gev Balyan

¿Has eliminado los complementos no utilizados? Joomla tiene que cargar y procesar cada complemento publicado para eventos activados en una solicitud.

¡Tienes que entender las extensiones que has instalado y cómo interactúan con Joomla!

Muchas extensiones instalan complementos que administran el contenido, el sistema o las actividades del usuario para iniciar funciones de código. Algunos de ellos pueden ser superfluos.

Sé que k2 instala muchos complementos que responden a eventos relacionados con el idioma que no producen resultados reales para sitios de un solo idioma. Anular la publicación de esos complementos puede reducir el tiempo de procesamiento.

1
Joomsavvy

Mejorar los recursos del plan de servidor/alojamiento web

Tal vez no sea la respuesta que buscaba el OP, pero vale la pena mencionarlo en caso de que no sea obvio para todos (y ninguna otra respuesta lo haya mencionado aún): mejorar los recursos del servidor, como la memoria, la CPU y la velocidad del disco.

Si está utilizando un alojamiento web compartido, la actualización del plan "económico" al plan "comercial" u otro plan más avanzado puede mejorar los recursos del servidor disponibles para su sitio web y reducir el tiempo de respuesta del servidor. Mudarse a una empresa de alojamiento de mejor calidad (por ejemplo, con servidores de alojamiento web compartidos menos concurridos) también podría ayudar.

Un mejor plan de alojamiento también podría darle acceso a mejoras de rendimiento que no están incluidas en el plan de alojamiento básico. Por ejemplo, los planes de alojamiento "GrowBig" y "GoGeek" SiteGround incluyen caché dinámica que ayuda a reducir significativamente el tiempo de respuesta del servidor. La opción de caché dinámica no está disponible en el plan "Inicio".

1
Neil Robertson