Un site Drupal 7 non optimisé avec 2 Go de RAM peut traiter de manière satisfaisante environ 20 à 25 demandes par seconde. Si vous voulez aller plus loin, le site nécessitera quelques modifications. Ce que vous peaufinez dépend si la plupart des utilisateurs du site sont anonymes ou authentifiés. Voici les principales choses que vous pouvez faire pour améliorer les performances:
Le site sert principalement des utilisateurs anonymes:
1) Installez et configurez définitivement APC, memcache et entitycache.
2) Placez le proxy Varnish devant le serveur Web. L'installation et la configuration prennent environ 30 minutes, mais réduiront considérablement le temps de chargement de vos pages. En fait, Varnish peut traiter environ 300 demandes par seconde sur un ordinateur de 2 Go si toutes les pages sont mises en cache. Utilisez le module Expirer pour n'expirer que les pages sélectionnées lors de la mise à jour / suppression de contenu.
3) Utilisez le module d’agrégation avancée CSS / JS pour regrouper les fichiers CSS et JS. Essayez de déplacer tous les fichiers JS au bas de la page. Mais notez que cela peut casser votre site, alors implémentez-le en production après des tests approfondis. Également expérimenter avec l'inlining CSS critique. D'après mon expérience, le temps de chargement d'une page sera réduit d'environ une demi-seconde.
4) Les images CSS / JS / doivent avoir un en-tête d'expiration très lointain. Cela garantira que les navigateurs ne demanderont pas toujours les mêmes CSS / JS / images.
5) Assurez-vous que le serveur Web sert des pages compressées / CSS / JS.
Après avoir implémenté les 5 étapes ci-dessus, votre serveur RAM de 2 Go devrait pouvoir traiter 50 requêtes par seconde assez facilement.
Le site sert principalement des utilisateurs authentifiés:
Optimiser un tel site est plus complexe. Ces sites appartiennent à l'une des deux sous-catégories à des fins d'optimisation:
(a) La plupart des pages du site sont identiques, à l'exception de 1 ou 2 blocs contenant des informations spécifiques à l'utilisateur. Par exemple, le site Drupal Commerce.
(b) La plupart des pages sont entièrement personnalisées pour l'utilisateur. Par exemple, le site Drupal Commons.
Si votre site entre dans la catégorie (a), appliquez la plupart des techniques dont nous avons parlé pour le site servant principalement des utilisateurs anonymes. La seule différence est que pour les pages non admin, Varnish devra supprimer le cookie SESSION de l'en-tête et servir les pages en cache. Utilisez le module AJAX Block pour les blocs de serveurs contenant des informations spécifiques à l'utilisateur à l'aide d'AJAX. De cette façon, la plus grande partie de la page sera servie très rapidement avec Varnish, puis les informations propres à l'utilisateur seront diffusées via AJAX.
Si votre site tombe dans la catégorie (b), utilisez le module Authcache. Je préfère ne pas l'utiliser autant que possible car il nécessite un peu de configuration et de maintenance. Mais ça marche vraiment bien. Ce ne sera pas aussi rapide que d'utiliser Varnish, mais il pourra traiter 50 demandes par seconde que vous recherchez.
Si vous souhaitez aller au-delà de ce que nous avons discuté ici, consultez la liste de contrôle d'optimisation des performances Drupal . Divulgation: Il est écrit par moi. Il cite une liste exhaustive de choses que vous pouvez faire pour que votre site Drupal flambe rapidement.