lenteur connexion pdo

Demande d'aide : c'est ici.
Répondre
fabien_lesstations
Messages : 3
Inscription : 11 mars 2024, 13:15
Status : Hors-ligne

Bonjour à toutes et à tous !

J'administre des serveurs pour un site touristique - vente de séjours en ligne. Nous sommes en pleine migration de l'infra afin de moderniser le matériel et les solutions logicielles (debian).
Le fonctionnement est le suivant :
  • serveur A : serveur Debian, apache, php etc.
  • serveur B (le vieux serveur) : serveur Debian, mysql
    [serveur C (le nouveau serveur) : serveur Debian, mariadb
Initialement, A se connecte à B pour aller chercher les données, via pdo.
C a été installé, les bases transférées, A modifié pour se connecter à C, toujours via pdo (le code de A n'a pas changé).
Problème, l'établissement de la connexion de A vers C est long. Le test réalisé est le suivant :

Code : Tout sélectionner

$debut = microtime(true);
$db_c = new PDO('mysql:host='.$dburl.';dbname='.$dbtable.';charset=utf8',$dblogin,$dbpass);
$db_c->query("SET NAMES 'utf8'");
$db_c->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$fin = microtime(true);
$temps = $fin - $debut;
Quand dburl contient l'ip du serveur C, le temps de connexion varie de quelques dixièmes de seconde à plus de 1,5 seconde ; quand dburl contient l'ip du serveur B (le vieux), le temps de connexion est stable autour de 0,002 s
Un ping depuis A sur chacun des serveurs donne des valeurs similaires pour les 2 serveurs.

Pourriez-vous m'aider ?
Merci par avance !

Fabien
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 4960
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

j'avais mal compris le problème, ma réponse était à coté de la plaque.
Tes tests montrent que e n'est pas un problème réseau mais applicatif.
lol pourras probablement mieux te renseigner que moi, les serveurs web c'est son quotidien
fabien_lesstations
Messages : 3
Inscription : 11 mars 2024, 13:15
Status : Hors-ligne

Merci par avance.
Pour info, j'ai monté un autre serveur debian en parallèle, pour tester. J'installe juste apache, php, php-mysql, activation de l'extension mysqli et pdo-mysql puis je fais le même test : vieux serveur mysql idem, nouveau serveur mariadb 140sec pour se connecter ! Je ne sais pas quoi faire...
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 4960
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Je ne pense pas que le probleme soit mariadb vs mysql.
Probablement un parametrage à modifier.
Tu trouveras peut étre une info utile, ou a defaut une piste sur cette page
https://www.php.net/manual/fr/ref.pdo-mysql.php
fabien_lesstations
Messages : 3
Inscription : 11 mars 2024, 13:15
Status : Hors-ligne

Je ne pense pas non plus qu'il s'agisse d'un soucis mariadb vs mysql. Il doit très certainement y avoir un problème quelque part, mais que je n'arrive pas à identifier.
J'ai lu la doc proposée, mais je doute qu'il y ait un lien : sauf erreur, pdo est exécuté par le serveur web, ça n'a pas de lien avec le serveur mysql. Comme il n'y a pas de problème sur 1 des 2 serveurs, je doute que ça vienne de là...

Merci !
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 4960
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Je pensais en particulier à cette partie:

Code : Tout sélectionner

Prendre garde toutefois : certains types de tables MySQL (moteur d'enregistrement) ne supportent pas les transactions. Lorsque vous écrivez du code de base de données transactionnel en utilisant un type de table qui ne supporte pas les transactions, MySQL prétendra qu'une transaction était initiée correctement. 
d'ou ma question sur le moteur utilisé coté mariadb
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,

Oui, c'est très probablement lié à la configuration de MariaDB vs MysqlServer.
A priori c'est le seul élément qui a changé.

Tu dois pouvoir optimiser le serveur mariadb (Augmenter/Ajuster certaines variables).
Sers toi de la conf de Mysql pour optimiser MariaDB à tes besoins.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Répondre