web-dev-qa-db-fra.com

Comment améliorer le temps de réponse du serveur?

Que puis-je faire, si ce n’est utiliser un plugin de cache tel que jotcache, pour améliorer le temps de réponse du serveur de mon site Web?

J'ai déjà supprimé tous les modules, plugins et composants d'articles inactifs. Y a-t-il autre chose que je puisse faire pour l'améliorer?

Je parle de la temps avant que le client (navigateur) reçoive une réponse à sa demande. Et pas le temps que la page se charge.

17
web-tiki

Plusieurs mesures peuvent être prises pour améliorer les performances côté serveur. Notez que certains d’entre eux ne fonctionneront pas avec la plupart des hôtes partagés. Pour obtenir d'excellentes performances, vous avez généralement besoin d'un contrôle plus fin.

Comme pour toute optimisation, vous devez mesurer son effet sur les performances de votre site. Des outils tels que PageSpeed et YSlow sont utiles pour les optimisations de base (je recommande les versions de Firefox). Pour une compréhension plus approfondie, vous devrez mesurer les temps de réponse réels de votre système actif sur une période donnée.

PHP

  1. Activer la mise en cache des opcode

    C'est probablement la meilleure chose à faire pour augmenter les performances de votre site. Je recommande soit d'utiliser OpCache ou APC . La configuration de ces caches peut être modifiée pour des performances encore meilleures en fonction des besoins spécifiques des serveurs et des sites, mais l'installation est déjà un énorme coup de pouce.

  2. Mettre à jour PHP version

    Les nouvelles PHP apportent régulièrement des améliorations en termes de performances. De plus, dans de nombreux cas, Joomla peut utiliser un meilleur code s’il est exécuté sur une version plus récente PHP. À compter de Aujourd'hui, vous ne devriez pas utiliser une version PHP antérieure à PHP 5.4 si vous vous souciez des performances.

  3. Paramètres PHP

    Sur les anciennes PHP versions (<= 5.3), veillez à désactiver register_globals et magic_quotes_gpc pour une performance gratuite. On PHP> = 5,6 changer always_populate_raw_post_data à -1.

  4. Extensions PHP

    Joomla contient du code pour contourner la solution manquante PHP extensions. Ce sera toujours plus lent que ces extensions. Pour une amélioration de performance satisfaisante, installez les extensions suivantes: mbstring, Zip, ftp

Serveur Web

  1. Activer gzip

    L'activation de la compression côté serveur permet de convertir la bande passante en ressources CPU. Pour la plupart des sites, c’est le bon appel. Veillez à ne compresser que les données texte. La compression des données binaires vous donnera le coup du processeur sans les avantages de bande passante. Vous pouvez également activer la compression dans les paramètres Joomla, mais il est préférable de laisser le serveur s'en charger.

  2. Précompresser les ressources statiques

    Je ne parle pas de minfication (bien que cela aide aussi), mais vous pouvez configurer Nginx et Apache sur des ressources déjà compressées du serveur, ce qui élimine efficacement l'impact du processeur sur la compression gzip. Points bonus: Utilisez Zopfli pour des fichiers encore plus petits.

  3. Utiliser FastCGI pour PHP

    Plus spécifiquement, vous devriez utiliser php-fpm. Cela empêche de démarrer PHP lorsque le navigateur demande un fichier non-PHP.

  4. Utilisez les en-têtes de cache appropriés

    L'utilisation de l'en-tête Expires peut considérablement réduire les ressources du serveur requises. Après tout, la demande la plus rapide est celle qui n'a jamais été faite.

Apache

En règle générale, je vous recommande d'utiliser Nginx pour les sites à hautes performances. Si vous devez absolument utiliser Apache pour une raison quelconque, j'ai un conseil bonus:

  1. Désactiver AllowOverride

    Régler AllowOverride sur None empêche beaucoup de disque IO et

Joomla

  1. Ne pas utiliser le mode FTP

    Bien que cela n’affecte pas les utilisateurs qui lisent le site, cela ralentira certaines opérations telles que l’installation de postes.

  2. Désactiver les extensions non utilisées

    Cela concerne particulièrement les plugins, beaucoup d'entre eux sont exécutés à chaque requête. La désactivation des menus et des composants est principalement utile pour répertorier les extensions et les types de menus disponibles. Prenez également 5 minutes pour parcourir les extensions fournies avec le noyau Joomla et désactivez celles que vous n'utilisez pas.

  3. Désactiver Préparer le contenu

    Si vous utilisez beaucoup de modules personnalisés (mod_custom pas personnalisé comme dans auto-écrit) vérifier si vous pouvez désactiver préparer le contenu dans ceux-ci. Cela économise du traitement.

  4. Utiliser la mise en cache

    Si vous êtes sérieux au sujet des performances, vous voudrez activer la mise en cache. Particulièrement utile pour lire des sites lourds avec de nombreux utilisateurs anonymes. Les utilisateurs connectés contourneront la majeure partie du cache. Si vous en avez beaucoup, l'effet ne sera pas aussi important.

  5. Utiliser un autre gestionnaire de session

    En utilisant un autre gestionnaire de session, vous pouvez libérer votre base de données pour des tâches plus importantes. Je ne recommanderais pas le fichier (appelé dans les paramètres Joomla, ce qui prête à confusion) car cela entraînerait une nouvelle augmentation du nombre d'E/S disque. L'utilisation d'APC est potentiellement le fastet, mais augmente le risque de perdre toutes les données de session. Le juste milieu est Memcache. Bien que cela nécessite un processus supplémentaire, il est plus fiable qu'APC et beaucoup plus rapide que le stockage de toutes les données de la base de données.

  6. Gardez votre site simple

    Avez-vous vraiment besoin de ce bouton Facebook? Qu'en est-il de cette icône mignonne que personne ne voit jamais parce qu'elle est en partie cachée derrière une bannière? Moins votre site affiche le plus vite il sera. Dans la mesure du possible, utilisez également CSS3 au lieu d'images.

Divers

  1. Définir un favicon

    Merci à décision remontant à Internet Explorer 4. les navigateurs font une demande dans un fichier nommé favicon.ico chaque fois qu'un utilisateur visite votre site. Si vous n'en avez pas, cela entraîne des E/S inutiles, car les réponses 404 ne sont pas mises en cache. Spécifiez l'icône de votre site avec une balise méta HTML ou ajoutez un fichier nommé favicon.ico à la racine Web. Tu ne veux pas de favicon? Placez un fichier PNG transparent de 1x1 pixel à cet emplacement. Notez que l'extension doit toujours être .ico.

  2. Optimisez vos images

    C'est incroyable le genre de sauvegarde que l'on peut obtenir en optimisant les images, en particulier les fichiers PNG. Il existe une variété d'outils disponibles pour tous les systèmes d'exploitation. Personnellement, j'utilise ImageOptim , qui est disponible pour OS X. Les images de base de Joomla sont déjà optimisées, mais vous pouvez également parcourir vos propres images, en particulier les modèles sont importants. Vous pouvez également vérifier les extensions que vous utilisez. Si elles sont open source, pourquoi ne contribuez-vous pas à une demande d'extraction contenant des images nouvellement optimisées?

Les avancés

Si vous voulez vraiment tout mettre en œuvre, envisagez de placer Varnish devant votre site. Il met en cache les requêtes sur votre site et, si possible, les sert à partir de son propre cache, sans jamais toucher Joomla. C'est un outil complexe mais avec beaucoup de puissance. Joomla ne profitera pas des fonctionnalités avancées telles que ESI (Edge Side Includes), mais votre propre code le pourrait.

25
Rouven Weßling

Une GRANDE chose à faire pour améliorer les temps de réponse de votre site consiste à mettre à jour les paramètres de votre module. Les modules personnalisés (en utilisant mod_custom) ont une option pour activer/désactiver la préparation du contenu. Cela vous permet d'exécuter des plug-ins de contenu sur le contenu de données de votre module personnalisé. Il est puissant lorsqu'il est utilisé correctement, mais il ajoute un temps de rendu supplémentaire à la sortie du module. À moins que vous n'utilisiez réellement un plugin de contenu dans le contenu de votre module personnalisé, il est préférable de le désactiver. Vous constaterez une diminution du temps de rendu des modules lorsque vous effectuez cette opération.

Capture d'écran du réglage: enter image description here

Remarque: si ma réponse vous a aidé, veuillez cocher la case à gauche pour accepter la réponse.

13
Don Gilbert

Je suppose que vous avez exploité votre site via Google Page speed et que vous envisagez en effet de réduire le temps de réponse de la page, c'est-à-dire le temps nécessaire pour que votre balise soit envoyée au navigateur.

Les coupables les plus probables pour ces requêtes sont lourdes. Activez le débogage et examinez les requêtes les plus lourdes au bas de la page, puis supprimez-les ou réduisez-les. Vous pouvez également utiliser les journaux de requête lents de votre serveur MySQL pour vous aider.

La prochaine chose que vous pouvez regarder est la mise en cache. Selon le type de site que vous avez, vous pouvez activer la mise en cache conservatrice ou progressive. Progressif doit être utilisé sur des sites dépourvus de fonctionnalités liées à l'utilisateur.

8
Ashwin Date

Les choses que je connais qui peuvent aider (dont la plupart ont été énumérées) sont les suivantes:

  1. Mise en cache
  2. Compression (gzip vos fichiers css et js)
  3. Combinaison de fichiers (tous vos css sont combinés dans un seul fichier)
  4. Déchargement d'images et de fichiers sur un CDN.

J'ai utilisé une combinaison du cache intégré dans Joomla (ou même d'APC activé sur le serveur) et de plugins tels que le plugin rockbooster de gzip ou de Rocket Theme. J'utilise aussi le plugin CDN non numéroté avec un compte Amazon.

Cela aide certes, mais vous devez surveiller votre site et désactiver le cache pour les composants présentant des problèmes. J'ai dû contourner CiviCRM sur notre site car il ne jouait pas bien avec la mise en cache. Joomla est livré avec un plugin cachecontrol qui peut gérer cela.

6
Brian Peat

Vous voudrez également vous pencher sur la réduction des actifs locaux et la mise en cache appropriée. Une chose que vous pouvez faire est d'utiliser des plugins CDN. Voici deux que je recommanderais:

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

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

De même, si rien de ce qui précède ne semble résoudre les problèmes, il est possible que le problème soit plus grave - éventuellement dans votre modèle, le serveur lui-même ou d'autres éléments. Si tel est le cas, il serait peut-être préférable d'engager quelqu'un pour résoudre le problème et le résoudre pour vous.

4
Steven Pignataro

Vous pouvez également utiliser ce code dans votre fichier .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>
3

J'ai créé plus de centaines de sites Web utilisant Joomla!

Dans la plupart des cas, les gens pensent que Joomla travaille beaucoup sur le serveur, mais selon les analyses que j'ai effectuées, le plus important pour garder votre site web FAST est d'optimiser les images et le JS/CSS.

N'utilisez pas les éditeurs Joomla, tels que JCE, pour modifier simplement la taille de l'image. Utilisez des éditeurs d'images comme Photoshop ou tout autre éditeur pour redimensionner vos images à la taille souhaitée!

Utilisez les outils de compression JS/CSS.

Nous utilisons toujours Pingdom Tools pour analyser la vitesse du site Web et nous utilisons la fonctionnalité intégrée de T3 Framework pour optimiser JS/CSS!

2
Gev Balyan

Avez-vous supprimé les plugins inutilisés? Joomla doit charger et traiter chaque plug-in publié pour les événements déclenchés dans une demande.

Vous devez comprendre les extensions que vous avez installées et leur interaction avec Joomla!

De nombreuses extensions installent des plug-ins qui gèrent le contenu, les activités du système ou les activités des utilisateurs pour lancer des fonctions de code. Certains d'entre eux peuvent être superflus.

Je sais que k2 installe de nombreux plug-ins qui répondent aux événements liés aux langues et ne produisent aucun résultat réel pour des sites en une seule langue. La suppression de la publication de ces plugins peut réduire le temps de traitement.

1
Joomsavvy

Améliorer les ressources du plan d'hébergement Web/serveur

Ce n’est peut-être pas la réponse recherchée par le PO, mais mérite d’être mentionnée au cas où cela ne serait pas évident pour tout le monde (et aucune autre réponse n’a encore mentionné cela): améliorez les ressources du serveur telles que la mémoire, le processeur et la vitesse du disque.

Si vous utilisez un hébergement Web partagé, la mise à niveau du plan "économie" vers le plan "entreprise" ou un autre plan plus avancé peut améliorer les ressources du serveur disponibles pour votre site Web et réduire le temps de réponse du serveur. Passer à une société d’hébergement de meilleure qualité (par exemple, avec des serveurs d’hébergement Web partagés moins encombrés) pourrait également aider.

Un meilleur plan d'hébergement peut également vous donner accès à des améliorations de performances qui ne sont pas incluses dans le plan d'hébergement de base. Par exemple, les plans d'hébergement SiteGround "GrowBig" et "GoGeek" incluent un cache dynamique qui permet de réduire considérablement le temps de réponse du serveur. L'option de cache dynamique n'est pas disponible dans le plan "Démarrage".

1
Neil Robertson