DISCLAIMER: 아래 권장 사항은 사용자 환경에 대한 제안 사항입니다. 모든 인프라는 서로 다릅니다. 서로 다른 유형의 워크로드를 호스팅하거나 Salt를 다른 방식으로 사용하는 유사한 인프라에서 PostgreSQL 성능의 다양한 차이점이 관찰되었습니다.

다음 설정을 활성 클러스터의 postgresql.conf 파일에 적용해야 합니다. 매개 변수를 적용하려면 데이터베이스를 다시 시작해야 합니다.

이 문서는 PostgreSQL 9.6을 기반으로 합니다만, 10.x 시리즈에도 유효 합니다.

또한 RAM이 16GB인 4-8 코어 서버를 기반으로 하며 Postgres가 시스템에서 많은 리소스를 사용하는 유일한 서비스라고 가정합니다.

1. max_connections

Salt-master에 대해 DirectDB를 설정한 SaltStack Enterprise를 사용하려면 SSE 프로세스 자체를 위한 약 50-60개의 연결과 마스터당 약 10개의 추가 연결이 필요합니다. Direct를 사용하지 않는 경우DB 최대 연결 100개의 Pg 기본값을 고수할 수 있습니다. 그렇지 않은 경우 DirectDB를 켠 상태에서 솔트 마스터당 10개의 연결을 추가합니다. Pg는 work_mem(아래 참조)과 함께 이 값을 기반으로 시작 시 일부 리소스를 할당합니다. 서버 리소스에 미치는 영향을 확인하지 않고 이러한 매개 변수를 켜지 않도록 주의하십시오.

SSE 로그의 오류 메시지(/var/log/raas/raas)는 DB의 연결이 끊어졌음을 나타내는 메시지가 될 수도 있습니다.

2. shared_buffers

규칙 값은 시스템 메모리의 25%입니다. 16GB 시스템의 경우 4GB 또는 shared_backage = 4096MB

3. effective_cache_size

이것은 Pg 쿼리 플래너에 의해 사용된 추정치이며, 메모리 할당의 증가 또는 감소로 이어지지 않습니다. 합리적인 제안은 시스템 RAM의 75%입니다.

effective_cache_size = 12288MB

4. work_mem

work_mem은 Pg가 메모리 내 정렬에 사용할 수 있는 메모리 양을 조정합니다. 기본값은 4MB이지만 SSE가 필요로 하는 보다 복잡한 종류와 조인을 수용하기 위해 이를 16MB로 늘리는 것이 좋습니다.

work_mem = 16MB

5. max_wal_size

체크포인트 간에 WAL을 확장할 수 있는 최대 크기입니다. 이것은 소프트 리미트입니다. 기본값은 1GB이며, 데이터베이스가 비정상적으로 종료될 경우 복구 시간이 길어질 수 있으므로 안전하게 늘릴 수 있습니다.

max_wal_size = 4GB

6. checkpoint_completion_target

WAL 세그먼트 쓰기 알고리즘을 조정하여 체크포인트 쓰기를 펼칩니다. 기본값인 .5(다음 체크포인트의 50%가 기록되기 전에 체크포인트를 완료하는 것을 목표로 함)는 최신 고속 디스크 및 디스크 어레이에 비해 너무 낮습니다. 이 설정은 최대 0.9까지 안전하게 설정할 수 있습니다.

checkpoint_targetion_target = 0.9

7. synchronous_commit

위험… 이 기능을 해제하면 특히 내부 배터리 백업이 없는 캐싱 디스크 컨트롤러가 있는 시스템에서 정전이나 서버 중단 시 데이터 손실 위험이 크게 증가할 수 있습니다. 이 문서의 권장 사항에 따라 이 기능을 해제하면 SaltStack은 데이터 손실 또는 데이터베이스 손상 책임을 지지 않습니다.

synchronous_commit는 명령이 클라이언트에게 “성공” 표시를 반환하기 전에 트랜잭션 커밋이 WAL 레코드가 디스크에 기록되기를 기다릴지 여부를 지정합니다. 해제 시 클라이언트에게 성공이 보고되는 시점과 서버 충돌에 대해 안전한 트랜잭션을 보장하는 시점 사이에 지연이 있을 수 있습니다. 이 기능을 해제하면 데이터베이스에 삽입되는 성능이 심각하게 향상됩니다.

synchronous_commit = off

이 문서의 일부는 PostgreSQL official documentationTuning article in the PostgreSQL Wiki에서 가져왔습니다.

https://kb.vmware.com/s/article/50122462
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like

솔트(Salt) 시스템 아키텍처

솔트란 무엇인가? 솔트(Salt)는 파이썬 기반 오픈 소스 원격 실행 프레임워크이다. 구성 관리 자동화 프로비저닝 오케스트레이션 솔트 시스템 아키텍처…