Aller au contenu

Gestion de cache automatisée ?


Sujets conseillés

Posté

Bonjour à toutes et à tous,

Voilà, je suis bien embétée actuellement : mes pages sont assez lourdes (nombreuses requêtes php, bdd mysql avec de nombreux champs) et mon site a souvent des lenteurs, voir carrément page qui s'affiche pas > je sais c'est moche :(

Et comme j'ai pas les moyens de m'offrir un dédié, j'ai donc fait un systeme de cache php qui fonctionne toutes les 24 h.

Mais le premier internaute qui clique sur une page va subir les frais de lenteur pour les autres...

J'aurais donc aimé savoir si quelqu'un savait comment remplir le cache automatiquement sans qu'il n'y ait d'internaute réel qui clique sur les pages.

J'avais pensé à des crons multiples mais c'est pas terrible comme solution. Surtout que j'ai plusieurs centaines de pages.

Si vous avez une solution fiable, je suis preneuse...

Un grand merci d'avance à celui ou celle qui me proposera une soluce...

sandy.

Posté

Personnellement, c'est ce que je fais aussi : le premier visiteur recalcule la page. Mais effectivement, tout dépend du temps de calcul d'une page. De quel ordre de grandeur parles-tu ? Plusieurs secondes ? Plusieurs dizaines de secondes ?

Posté

Merci de me répondre Captain,

entre 0.7s et 5s >> tout dépend des heures...

Mais quelquefois (très rarement) cela mouline dans le vide plus longtemps sans jamais accéder.

Y-a-t-il une possibilité, Captain_torche de faire visiter le site entièrement en automatique pour remplir le cache ou pas ?

Posté

C'est pas dramatique non plus, si c'est limité à un visiteur par jour. Combien as-tu de visiteurs ?

Il faudrait juste comprendre pourquoi parfois ça n'aboutit pas.

Quant à le faire automatiquement c'est possible en effet, avec une tâche cron. Sachant que si tu as 300 pages et qu'elles mettent 5 secondes à charger, il mettra près d'une demi-heure à tourner.

Posté

En gros j'ai 1000 pages et environ 1000 visiteurs jours.

Il n'y aurait pas de solutions autres, genre script en curl, script bash... ?

(je dis ça, mais je ne m'y connais pas du tout dans ces languages...)

Par ailleurs, Captain, comment éviter de mettre en cache des pages qui aboutissent à sur des messages d'erreur, des 404...

Posté

L'idéal serait de ne recalculer le cache d'une page que si celle-ci a été modifiée. Si une page change de contenu tous les trois mois, pas la peine de recalculer tous les jours. Inversement, si elle change tous les cinq minutes, il faut recalculer plus souvent.

Sinon, une tache cron qui exécurait un script faisant des file_get_contents() sur chaque url, ça répondrait à ce que tu cherches pour le recalcul automatique. Reste à savoir si c'est vraiment une bonne idée.

Posté

Peut-être y a-t-il la possibilité d'optimiser ne serait-ce qu'un peu tous les éléments qui provoquent ces ralentissements : les requêtes SQL (jointures, sous-requêtes, etc.), réduire quelques opérations PHP ou utiliser de meilleures fonctions, etc.

Après effectivement, le cache est une bonne solution surtout s'il est recalculé quand c'est nécessaire.

Posté

1000 visiteurs / jour et ça rame, c'est franchement pas normal, même sur du mutualisé.

Avant de penser à la solution du cache, il serait bon d'aller optimiser le code du site et surtout les requêtes MySQL ainsi que leur nombre

Posté

Merci Ernestine, dadou et yuston.

J'ai fait ce week-end plusieurs tests cron sur une centaines de pages qui se sont révélés catastrophiques : une multitude de pages mises en cache étaient des pages non affichées, erreurs php... etc

Faire comme cela, ca ne me semble pas la bonne solution, mais plutôt du rafistolage...

J'ai pris la décision de :

1/ revoir tout mon code php ):

2/ et de changer d'hébergeur > plus cher ):

Merci à tous les membres qui se sont penchés sur mon problème...

Sandy.

Posté

Perso, je chercherai à optimiser le temps d'affichage des pages car 5s c'est énorme je trouve ! Soit l'algo n'est pas optimisé (pb d'index ou autre) soit l'hébergeur est mauvais

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...