Chargement super lent pour anonyme, très rapide si loggé

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Mes recherches sur les forums anglais et français ne me permettent pas de trouver solution à mon problème. J'espère dénicher ici l'un ou l'autre expert qui pourra m'aider. Merci déjà !

J'ai un site drupal en construction (www.betrail.be) avec plusieurs dizaines de milliers de pages, nécessitant pas mal de calculs PHP avant l'affichage. Je me doute qu'il y a encore beaucoup d'erreurs dans ma façon d'utiliser Drupal, mais peu importe.

Je remarque que chacune de ces pages prend seulement une seconde à être chargée lorsque je suis connecté, mais jusqu'à 30 secondes lorsque je suis en utilisateur anonyme (sauf si la page est déjà en cache). Je ne trouve pas ce qui cause cette différence énorme, et je cherche à ce que le site soit plus rapide pour les utilisateurs anonymes.

Le problème est le même que le cache soit activé ou non.

Quels test puis-je faire ?
Comment savoir ce qui rend le chargement si long lorsqu'on n'est pas loggé ?

Merci beaucoup à vous,
Sylvain L. - Belgique

Version de Drupal : 

Merci pour ta réponse !

J'ai installé Boost qui est intéressant pour son Crawler... mais il est impossible de crawler 35000 pages dans un cron ;-).
Je vais tester l'outil Google... peut-être y trouverai-je la raison de ce chargement si lent.

Sylvain.

Quand on parle de "nécessitant pas mal de calculs PHP" ça veut dire quoi ?

est-ce que c'est du code PHP spécifique ajouté, via un module spécifique lui-aussi ? dans ce cas il faut sans doute voir à utiliser les fonctions de cache de drupal pour accélérer tout cela, ou revoir le code.

Est-ce que le site est également lent avec des contenus 100% drupal ?

D'après ce que je peux voir, le site charge beaucoup de fichiers CSS et JS. Il faut activer l'agrégation de ces fichiers (Admin / Configuration / Développement / Performances).

Voir aussi à désactiver certains modules comme dblog, statistics qui font des écritures dans la base de données, ce qui est désastreux au niveau performances

Bonjour Vincent,

Merci de t'intéresser à mon problème !

Quand j'évoque "pas mal de calculs PHP", c'est sans doute un abus de langage. Je veux dire:
- Beaucoup de requêtes dans la base de données
- Plusieurs calculs perso avec Views PHP, avec requêtes, boucles et calculs mathématiques.

Mais mon problème ne se situe sans doute pas là, car quand je suis connecté, toutes ces pages (avec toutes ces requêtes et calculs, et les mêmes CSS et javascripts) se chargent en moins de deux secondes (que le cache soit activé ou désactivé). Lorsque je ne suis pas connecté, le temps de réponse du serveur est souvent de 19 à 22 secondes.

Il y a donc selon moi une opération qui a lieu pour le chargement des pages pour les utilisateurs anonymes, qui n'a pas lieu pour les utilisateurs connectés. J'ai pensé à la génération du cache, mais ce temps de réponse très long est présent même lorsque le cache est désactivé.

Evidemment, une fois qu'une page est mise en cache, le temps de réponse est très rapide. Mais ce n'est pas une solution pour mon problème, car:
1) Le contenu des pages est amené à changer tous les 2-3 jours.
2) Une 'génération' du cache pour les 20.000 pages utiles tous les trois jours n'est simplement pas possible si le temps de génération d'une page est de 20 secondes (cela ferait 4 jours de calcul tous les 3 jours...)

Je cherche donc désespérément la raison qui explique une telle différence de temps de chargement... Qu'est-ce qui change dans la manière qu'a Drupal de générer une page, selon qu'on est connecté ou non ? Formulaire de connexion ? Ecritures supplémentaires dans les logs ? ...

Merci bien !
Sylvain.