Uno dei miei server PostgreSQL ospita diversi (1-3) database che ricevono un flusso costante di dati. I dati non sono particolarmente strutturati, ammontano al tempo corrente e ad una varietà di dati osservati per quel particolare istante. La velocità dei dati è piuttosto elevata; funziona a circa un gigabyte al giorno per un database, circa un decimo di quello per un altro database. Non mi aspetto che questo tasso aumenti. Le prestazioni di lettura hanno una priorità molto più bassa ed è attualmente accettabile.
Nei registri ho questo messaggio:
LOG: checkpoints are occurring too frequently (15 seconds apart)
HINT: Consider increasing the configuration parameter "checkpoint_segments".
Questo valore è attualmente impostato su 16, per gentile concessione di pgtune
.
Quali sono le impostazioni che dovrei considerare per migliorare le prestazioni di scrittura? Preferirei mantenere la massima sicurezza possibile. Considerando il volume di dati in arrivo, potrei accettare di perdere alcuni dati recenti in caso di errore purché la maggior parte dei dati fosse intatta.
Modifica: sto usando PostgreSQL 9.0 per ora, ma ho intenzione di aggiornare a 9.1. Non sto pubblicando i dettagli dell'hardware perché, mentre riconosco la loro importanza, alla fine dovrò fare questa ottimizzazione su più macchine con hardware molto diverso. Se l'hardware è essenziale per la risposta, ti prego di darmi le informazioni generali in modo da poter applicare la risposta a macchine con diverse configurazioni hardware.
checkpoint_segments
come raccomandato? Quello che è successo?