Vous voudrez peut-être vérifier si le client lent utilise ou non le cryptage SSL. Cela se produit par défaut lorsqu'il est configuré sur le serveur et que le client a été compilé avec le support SSL.
Pour les requêtes qui récupèrent de grandes quantités de données, la différence de temps est importante. Certaines distributions Linux comme Debian/Ubuntu ont également SSL activé par défaut, même pour les connexions TCP via localhost.
A titre d'exemple, voici la différence de temps pour une requête récupérant 1,5M de lignes pesant un total de 64Mbytes, avec un warm cache.
Sans chiffrement :
$ psql "host=localhost dbname=mlists sslmode=disable" Password: psql (9.1.7, server 9.1.9) Type "help" for help. mlists=> \timing Timing is on. mlists=> \o /dev/null mlists=> select subject from mail; Time: 1672.258 ms
Avec chiffrement :
$ psql "host=localhost dbname=mlists" Password: psql (9.1.7, server 9.1.9) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. mlists=> \o /dev/null mlists=> \timing Timing is on. mlists=> select subject from mail; Time: 7017.935 ms
Pour le désactiver globalement, on peut définir SSL=off
dans postgresql.conf
.
Pour le désactiver pour des plages spécifiques d'adresses client, ajoutez des entrées dans pg_hba.conf
avec hostnossl
dans le premier champ avant le host
plus générique entrées.
Pour désactiver si côté client, cela dépend de la façon dont le pilote expose le sslmode
paramètre de connexion. Si ce n'est pas le cas, le PGSSLMODE
la variable d'environnement peut être utilisée si le pilote est implémenté au-dessus de libpq
.
Comme pour les connexions via les sockets de domaine Unix (local
), SSL n'est jamais utilisé avec eux.