Un de mes serveurs PostgreSQL héberge plusieurs (1-3) bases de données qui reçoivent un flux constant de données. Les données ne sont pas particulièrement structurées, elles correspondent à l'heure actuelle et à une variété de données observées pour cet instant particulier. Le débit de données est assez élevé; cela représente environ un gigaoctet par jour pour une base de données, environ un dixième pour une autre. Je ne m'attends pas à ce que ce taux augmente. Les performances de lecture sont une priorité beaucoup plus faible et sont actuellement acceptables.
Dans les journaux, j'ai ce message:
LOG: checkpoints are occurring too frequently (15 seconds apart)
HINT: Consider increasing the configuration parameter "checkpoint_segments".
Cette valeur est actuellement définie sur 16, avec l'aimable autorisation de pgtune
.
Quels sont les paramètres à prendre en compte pour améliorer les performances d'écriture? Je préférerais garder autant de sécurité que possible. Compte tenu du volume de données entrant, je pouvais accepter de perdre certaines données récentes en cas d'échec tant que la majeure partie des données étaient intactes.
Edit: j'utilise PostgreSQL 9.0 pour l'instant, mais je prévois de passer à 9.1. Je ne publie pas les détails du matériel car bien que je reconnaisse leur importance, je devrai finalement faire cette optimisation sur plusieurs machines avec du matériel très divers. Si le matériel est essentiel à la réponse, veuillez me donner les informations générales afin que je puisse appliquer la réponse aux machines avec différentes configurations matérielles.
checkpoint_segments
comme recommandé? Qu'est-il arrivé?