Jump to content
Sign in to follow this  
sandrinoo

Gestion de cache automatisée ?

Rate this topic

Recommended Posts

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.

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...