Postgresql 서버에 적합한 파티션

Postgresql 서버에 적합한 파티션

저는 500GB RAID 1을 사용하여 우분투에 전용 postgresql 서버를 설정하고 있습니다. 저는 이 모든 것에 꽤 익숙하기 때문에 제가 사용할 수 있는 간단하면서도 효과적인 파티셔닝 스키마를 누군가 공유할 수 있는지 궁금합니다.

답변1

단일 대형 RAID로 파티셔닝하면 성능상 큰 이점을 얻을 수 없습니다(비록 가득 채우는 문제는 피할 수 있지만).

일반적으로 나는 당신이 스스로 크기를 조정하는 것이 정말 편하지 않고 PGDATA 디렉토리를 생성하려는 곳에 적당한 크기의 공간이 있는지 확인하지 않는 한 OS 기본값을 사용합니다. 아래의 OS 파티셔닝 제안은 제가 FreeBSD 시스템에서 사용하는 것입니다. 아마도 Ubuntu에서도 괜찮을 것입니다.

 /                    1GB (or larger)
 [SWAP]               2GB or 2*RAM Size
 /var                 10GB
 /usr                 10GB
 /usr/local           15GB
 /tmp                 2GB
 /home                10GB ("Big enough for home directories")
 -------------------------------------------------------------
 (OS Total)           50 GB
 [PGDATA]             Postgres data directory ("The rest")

(Ubuntu는 /usr/local을 사용하지 않을 수 있습니다. 그렇지 않은 경우 그 중 일부를 /usr에 접을 수 있습니다)


답변: Postgres 관련 파티셔닝, 단일 RAID-1에서 이 작업을 수행하는 경우 [PGDATA]를 DB 및 트랜잭션 로그를 보관할 수 있을 만큼 크게 만들고 성장 공간도 확보하세요.

이것이 프로덕션 박스이고 많은 DB 활동이 예상되는 경우 이를 여러 RAID-1로 분리하여 디스크 활동을 분리하는 것입니다(초대량 볼륨의 경우 컨트롤러 간에 분할하는 것을 고려할 수도 있습니다). ).

Oracle에는 이에 대한 훌륭한 백서가 많이 있으며 저는 그들의 디자인을 훔칠 것을 적극 권장합니다. 단순하지는 않지만 효과적입니다. 내가 사용하는 파티션 구성표(각각은 자체 디스크 쌍)는 다음과 같습니다.

[PGDATA]               5-10GB
[PGDATA]/pg_xlog       5-10GB (More if you expect lots of transaction logs)
[PGDATA]/base          Big enough for your database
[PGDATA]/[Tablespace]  Optional - Separate out "high-traffic" table spaces
[PGDATA]/xlog_archive  Big enough for archived transaction logs & dumps

답변2

저는 초당 600-1000 트랜잭션 사이의 흥미로운 활동을 수행하는 postgresql 서버를 가지고 있으며 파티셔닝은 다음과 같습니다.

/      - 10GB
swap   - 15GB (I have 8GB RAM)
/var   - 20GB
/home  - 60GB (don't ask why, but I think 60gb is too much for home)
pgdata - 100 GB

데이터에 따르면 작은 데이터 부분이 필요한 경우 거대한 테이블을 스캔하지 않기 위해 테이블 ​​파티셔닝에 대해 자세히 알아보는 것이 흥미로울 것입니다. 예를 들어, 분할된 테이블을 사용하여 로그를 저장하므로 다음과 같은 마스터 테이블이 있습니다.로그월별 테이블이라고 함YYYYMM_logs주인에게서 물려받았습니다. 그런 다음 트리거 기능을 사용하여 각 로그를 해당 분할 테이블에 배치합니다.

관련 정보