Le mot clé ici est authentifié!
Actuellement (pour autant que je sache), les moyens de facto d'optimiser l'accès anonyme sont les caches de pages statiques (vernis/squid/boost).
Cependant, pour autant que je sache, cela ne semble pas faire grand chose dans un scénario où la plupart de vos utilisateurs sont authentifiés.
Outre l'APC évident, Memcache et le fait de jeter de l'argent sur le matériel, quelle est la meilleure façon d'optimiser les performances d'un site à fort trafic avec des utilisateurs principalement authentifiés?
Par exemple: drupal.org, réseaux sociaux, communautés, etc.
Je suis plus intéressé par Drupal 6 pour le moment donc je suppose que MongoDB ne s'applique pas pour l'instant ...
Chaque site est différent, il faudra donc différentes astuces pour le faire fonctionner. Voici ceux que j'utilise pour nos sites pour les performances de connexion.
Si vous voulez vraiment savoir ce qui cause le code lent, obtenez un cache Grind de votre site. Qu'est-ce que tout contribue à drupal temps d'exécution de la page?
edit: Il semble que la version 7.x d'Auth Cache commence à être développée. Je ne l'ai pas utilisé, mais quelque chose à examiner.
Installez Mise en cache de la page utilisateur authentifié (Authcache) et Easy authcache et écrivez vos plugins personnalisés pour une authcache facile. Les plugins rendent certaines parties de la page accessibles avec ajax. donc une grande partie de la page sera mise en cache et une partie changeante sera obtenue avec ajax. Vous pouvez utiliser du vernis et d'autres proxys pour mettre en cache ces pages.
Profilez vos pages lentes avec XHProf. C'est le meilleur outil pour montrer quelles fonctions sont lentes. L'autre outil utile est le journal des requêtes lentes de mysql.
Drupal.org fonctionne vraiment sur Pressflow 6 , et utilise Varnish ; le contenu est servi à l'aide d'un équilibreur de charge, et le moteur de base de données est probablement MariaDB .
Si vous avez un site similaire à Drupal.org pour le nombre d'utilisateurs enregistrés et pour le nombre de nœuds, vous devez vérifier si vous pouvez utiliser Pressflow; vérifier si vous pouvez utiliser MariaDB au lieu de MySQL est probablement la prochaine étape.