Uno de mis servidores PostgreSQL aloja varias (1-3) bases de datos que reciben un flujo constante de datos. Los datos no están particularmente estructurados, equivalen al tiempo actual y a una variedad de datos observados para ese instante en particular. La velocidad de datos es bastante alta; Resulta aproximadamente un gigabyte por día para una base de datos, aproximadamente una décima parte de eso para otra. No espero que esta tasa aumente. El rendimiento de lectura es una prioridad mucho menor y actualmente es aceptable.
En los registros tengo este mensaje:
LOG: checkpoints are occurring too frequently (15 seconds apart)
HINT: Consider increasing the configuration parameter "checkpoint_segments".
Este valor está configurado actualmente en 16, que es cortesía de pgtune
.
¿Cuáles son las configuraciones que debo considerar para mejorar el rendimiento de escritura? Preferiría mantener la mayor seguridad posible. Teniendo en cuenta el volumen de datos que ingresa, podría aceptar perder algunos datos recientes en una falla, siempre y cuando la mayor parte de los datos estén intactos.
Editar: estoy usando PostgreSQL 9.0 por ahora, pero planeo actualizar a 9.1. No publico los detalles del hardware porque, aunque reconozco su importancia, en última instancia necesitaré hacer esta optimización en varias máquinas con hardware muy diverso. Si el hardware es esencial para la respuesta, proporcione la información general para que pueda aplicar la respuesta a máquinas con diferentes configuraciones de hardware.
checkpoint_segments
según lo recomendado? ¿Que pasó?