Jump to content

[Résolu] 2 min pour charger une page


Pixtor

Recommended Posts

Hello ! 

 

J'ai un gros soucis depuis maintenant 1 semaine : Le temps de chargement de mon site internet est passé de 2s à 2min -_- depuis quelques jours. (pix-attack   .com) 

Données site : 

  • Prestashop 1.6.0.5
  • Hebergement mutualisé OVH 
  • Base Mysql 5.5 (500mo utilisé) 
  • Environ 30 modules activés
  • Optimisation du cache activés (pas SQL)

 

Pour essayer de comprendre ce qu'il se passait, j'ai donc fait les opérations suivantes : 

  • Restauration du FTP à la date antérieure du problème 
  • Restauration de la BDD à la date antérieure du problème
  • Appel hotline hebergeur => 130 000 appels par heure (Beaucoup pour un site modeste)
  • Purification de certaines tables volumineuses de la bdd 
  • Activation du mode profiling & debug (encore activé) => Rien de bien concret

 

Information intéréssante : 

  • Le front & le back mettent 2 min par page
  • 1 page met près de 2 sec à charger contrairement aux autres (/catalogue.php) => Est-qu'il n'y aurait pas quelque chose au niveau des redirections avec les langues ? 

 

Avez-vous une idée, piste qui pourrait me permettre d'avancer ? 

 

Merci, 

 

Pixtor

Edited by Pixtor (see edit history)
Link to comment
Share on other sites

1- Activer le debug SQL pour en savoir plus (temps de réponse bdd et nombre de rows renvoyés par requêtes)

2- désactiver temporairement les overrides pour voir si le problème serait lié

3- renommer temporairement le répertoire /modules pour voir si le problème est aussi présent sans modules chargés

Vous n'avez aucune compression css ou js, c'est volontaire ?

Link to comment
Share on other sites

Vous avez une trace de notice PHP en attribut "value" de votre champ de recherche de produits. Mais c'est plutôt étrange qu'une valeur soit renseignée côté serveur pour cet attribut.

EDIT : je n'avais pas vu le debug Prestashop en bas de page. Les temps de requêtes sont normaux, donc il y a probablement un fichier PHP exécutant une longue instruction et gênant le chargement. Suivez l'ordre d'inclusion des fichiers en ajoutant un bon gros die('stop') pour identifier où ça coince.

Edited by GuillaumeCW (see edit history)
Link to comment
Share on other sites

Merci pour les réponses !

  • Le mode débuggeur ne révèle aucune requete anormalement longue ou un nombre de requete trop élevé.
  • Après avoir renommer le dossier modules, le temps de chargement est toujours aussi long
  • Pour ce qui est des overrides, ce prestashop n'a pas été bien développé, les overrides ont été directement codé dans les .tpl -_-
  • La recherche à toujours fonctionné comme ça, j'avoue ne pas m'être attardé sur le sujet :D

 

Je vais tenter de dégguer le php avec le die('stop') , n'ayant aucune idée de comment/ou le faire, la réponse risque de prendre un peu de temps lol

Link to comment
Share on other sites

index.php contient les éléments suivants : 

// BEGIN - EasyPHP DevServer module - update path in the db
$db_host = XXXXXXXXXX;
$db_username = 'XXXXXXX;
$db_password = 'XXXXXX';
$domain = ($_SERVER['SERVER_PORT'] == 80) ? $_SERVER['SERVER_NAME'] : $_SERVER['SERVER_NAME']. ":" . $_SERVER['SERVER_PORT'];
$mysqli = new mysqli($db_host, $db_username, $db_password);
$path = explode('/', dirname($_SERVER['PHP_SELF']));
$mysqli->query("UPDATE `" . $path[2] . "`.`ps_configuration` SET `value` = '" . $domain . "' WHERE `ps_configuration`.`name` = 'PS_SHOP_DOMAIN'");
$mysqli->query("UPDATE `" . $path[2] . "`.`ps_configuration` SET `value` = '" . $domain . "' WHERE `ps_configuration`.`name` = 'PS_SHOP_DOMAIN_SSL'");
$mysqli->query("UPDATE `" . $path[2] . "`.`ps_shop_url` SET `physical_uri` = '/modules/" . $path[2] . "/' WHERE `ps_shop_url`.`id_shop_url` = 1");
$mysqli->query("UPDATE `" . $path[2] . "`.`ps_shop_url` SET `domain` = '" . $domain . "' WHERE `ps_shop_url`.`id_shop_url` = 1");
$mysqli->query("UPDATE `" . $path[2] . "`.`ps_shop_url` SET `domain_ssl` = '" . $domain . "' WHERE `ps_shop_url`.`id_shop_url` = 1");
$mysqli->close();
// END - EasyPHP DevServer module

 

Si je commente les lignes php, la situation revient à la normale, mais avez vous une idée du fonctionnement de ce easyphp ? quels sont les impactes si le désactive ? 

Surtout, si il existe un moyen de le faire proprement !? 

 

Merci, 
 

Edited by Pixtor (see edit history)
Link to comment
Share on other sites

Il sort d'où ce code ????

Normalement index.php ne contient que:

require(dirname(__FILE__).'/config/config.inc.php');
Dispatcher::getInstance()->dispatch();

Par contre, là vous venez de diffuser sur le web mondial le moyen de vous faire pirater votre bdd en moins de 2, je vous conseille de supprimer cet user easyphp de votre bdd

 

Link to comment
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
×
×
  • Create New...