Impatto sulle prestazioni dell'impostazione di PostgreSQL per registrare tutte le istruzioni


8

PostgreSQL 9.2.2 su Windows 7 a 64 bit.

L'impostazione log_statementnel postgresql.conffile specifica quali istruzioni registrare (nessuna, DDL, modifica dei dati o tutte). In che misura l'impostazione log_statement = 'all'peggiora le prestazioni? Ho letto che questo riduce significativamente le prestazioni, ma queste affermazioni provengono da articoli più vecchi, quindi quanto di una perdita di prestazione dovrei aspettarmi rispetto log_statement = 'none'?

Risposte:


12

Come quasi tutto il resto, dipende dall'hardware, dalla configurazione e dal carico di lavoro.

Se stai eseguendo poche dichiarazioni costose, farà poca differenza; se stai eseguendo un sacco di piccole e semplici dichiarazioni farà più differenza.

Se i tuoi registri si trovano sullo stesso file system o anche solo sullo stesso disco del database, la registrazione farà più differenza che se i registri sono memorizzati su un disco separato. Anche se i registri non sono esplicitamente fsync()e sono scritti in sequenza, continuano a competere con il DB principale per l'I / O.

Ancora più importante, alcuni file system (in particolare ext3) scaricheranno tutti i dati quando qualsiasi file è fsync()'d, quindi le scritture del registro diventano più vicine all'I / O casuale rispetto all'I / O sequenziale e rallentano ogni commit. IIRC questo non è un problema su ext4 o xfs.

Dipenderà anche dal fatto che tu abbia il tempismo delle istruzioni abilitato, il metodo di registrazione che stai usando e altro.

L'opzione migliore è confrontarla con una simulazione del carico di lavoro reale e vedere.


Registrazione su stderr come file di testo normale sullo stesso disco. Il timing dell'istruzione è disabilitato. Il raccoglitore di registrazione è abilitato. Il server è occasionalmente soggetto a query frequenti e moderatamente complesse.
bwDraco,

@DragonLord: i tempi delle dichiarazioni fanno la differenza. per carico CPU.
Erwin Brandstetter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.