Potresti voler controllare se il client lento esegue la crittografia SSL o meno. Succede per impostazione predefinita quando è impostato sul server e il client è stato compilato con il supporto SSL.
Per le query che recuperano grandi quantità di dati, la differenza di tempo è significativa. Inoltre, alcune distribuzioni Linux come Debian/Ubuntu hanno SSL attivo per impostazione predefinita, anche per le connessioni TCP tramite localhost.
Ad esempio, ecco la differenza di tempo per una query che recupera 1,5M di righe per un totale di 64Mbyte, con una cache calda.
Senza crittografia:
$ 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
Con crittografia:
$ 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
Per disattivarlo a livello globale, è possibile impostare SSL=off
in postgresql.conf
.
Per disattivarlo per intervalli specifici di indirizzi client, aggiungi voci in pg_hba.conf
con hostnossl
nel primo campo prima del più generico host
voci.
Per disattivare il lato client, dipende da come il driver espone il sslmode
parametro di connessione. In caso contrario, il PGSSLMODE
la variabile di ambiente può essere utilizzata se il driver è implementato su libpq
.
Per quanto riguarda le connessioni tramite socket di dominio Unix (local
), SSL non viene mai utilizzato con loro.