내 PostgreSQL 서버 중 하나가 일정한 데이터 스트림을 수신하는 여러 (1-3) 데이터베이스를 호스팅합니다. 데이터는 특별히 구조화되어 있지 않으며, 현재 시간과 특정 순간에 대한 다양한 관측 데이터에 해당합니다. 데이터 속도는 상당히 높습니다. 한 데이터베이스의 경우 하루에 약 기가 바이트, 다른 데이터베이스의 경우 약 10 분의 1이됩니다. 나는이 비율이 증가 할 것으로 기대하지 않습니다. 읽기 성능은 우선 순위가 훨씬 낮으며 현재 허용됩니다.
로그에 다음 메시지가 있습니다.
LOG: checkpoints are occurring too frequently (15 seconds apart)
HINT: Consider increasing the configuration parameter "checkpoint_segments".
이 값은 현재 16으로 설정되어 pgtune
있습니다.
쓰기 성능을 향상시키기 위해 고려해야 할 설정은 무엇입니까? 가능한 한 많은 안전을 유지하고 싶습니다. 들어오는 데이터의 양을 고려할 때 대량의 데이터가 손상되지 않는 한 최근의 일부 데이터가 손실 될 수 있습니다.
편집 : 지금은 PostgreSQL 9.0을 사용하고 있지만 9.1로 업그레이드 할 계획입니다. 하드웨어의 세부 사항을 게시하지는 않습니다. 하드웨어의 중요성을 인정하는 동안 궁극적으로 매우 다양한 하드웨어가있는 여러 컴퓨터에서이 최적화를 수행해야합니다. 하드웨어가 응답에 필수적인 경우, 하드웨어 구성이 다른 시스템에 응답을 적용 할 수 있도록 일반 정보를 알려주십시오.
checkpoint_segments
권장대로 증가 했습니까 ? 어떻게 된 거예요?