Vous n'êtes pas identifié(e).
Afin d'optimiser l'usage de serveurs, nous avons installé un serveur dédié à Apache / php, et un autre à PostgreSQL, mais avec la possibilité de rapatrier tout sur un seul serveur.
Lorsque le site pointe sur les données PostgreSQL de l'autre serveur, il est très lent : plus d'une minute pour l'affichage d'une page (plusieurs requêtes)
Si le site pointe sur les données PostgreSQL sur lui-même, l'affichage des pages est immédiat. La seule modification est l'adresse de la base de données.
Voici le hba_conf présent sur les 2 serveurs :
local all all trust
host all all IP_Postgre 255.255.255.255 md5
host all all IP_Apache 255.255.255.255 trust
host all all IP_Admin 255.255.255.255 trust
host client1 all IP_DuClient1 255.255.255.255 trust
host client2 all IP_DuClient2 255.255.255.255 trust
host all all ::1/128 reject
Par ailleurs, on ne rencontre aucun problème avec les bases MySQL !
Ces 2 serveurs sont 2 machines virtuelles linux (Xen) sur une même machine physique, hébergée chez OVH pour ne pas le nommer.
Hors ligne
Bonjour. Y a t'il une session ouverte à la base par requête ?
Marc.
Hors ligne
Bonjour. Y a t'il une session ouverte à la base par requête ?
L'ouverture à la base s'effectue par l'ordre php : $bdd = new PDO("pgsql:host="._BASE_HOST." port="._BASE_PORT." dbname="._NOM_DATABASE ." user="._B
C'est uniquement en modifiant la valeur de _BASE_HOST que l'on change de serveur.
Ces serveurs hébergent plusieurs sites.
Hors ligne
Je ne suis pas développeur PHP. De ce que je comprends, si vous continuez à utiliser $bdd dans la même page, vous ne vous reconnectez pas à la base. Malgré tout, peut être est-ce l'établissement de la session qui prend du temps. Vous devriez mesurer la durée de l'établissement de cette session. Si cela ne vient pas de là, essayez de déterminer où passe ce temps (exécution, transfert réseau…)
Marc.
Hors ligne
Je ne suis pas développeur PHP. De ce que je comprends, si vous continuez à utiliser $bdd dans la même page, vous ne vous reconnectez pas à la base. Malgré tout, peut être est-ce l'établissement de la session qui prend du temps. Vous devriez mesurer la durée de l'établissement de cette session. Si cela ne vient pas de là, essayez de déterminer où passe ce temps (exécution, transfert réseau…)
Je ne sais pas comment trouver (dans quels logs, avec quel outil) où se passe le temps !
Hors ligne
Il suffit d'utiliser les paramètres log_connections et/ou log_disconnections dans le fichier de configuration de PostgreSQL (postgresql.conf).
Guillaume.
Hors ligne