1.26. PostgreSQL 공유 메모리 오류 문제 해결
대규모 환경이 있는 경우 검색 결과에 영향을 미치는 PostgreSQL 공유 메모리 오류와 애플리케이션의 토폴로지 보기가 발생할 수 있습니다.
1.26.1. 증상: PostgreSQL 공유 메모리 오류
search-api
로그에 다음과 같은 오류 메시지가 표시됩니다. ERROR: could not resize shared memory segment "/PostgreSQL.1083654800" to 25031264 bytes: No space left on device (SQLSTATE 53100)
1.26.2. 문제 해결: PostgreSQL 공유 메모리 오류
문제를 해결하려면 search-postgres
ConfigMap에 있는 PostgreSQL 리소스를 업데이트합니다. 리소스를 업데이트하려면 다음 단계를 완료합니다.
다음 명령을 실행하여
open-cluster-management
프로젝트로 전환합니다.oc project open-cluster-management
search-postgres
Pod 메모리를 늘립니다. 다음 명령을 수행하면 메모리를16Gi
로 늘립니다.oc patch search -n open-cluster-management search-v2-operator --type json -p '[{"op": "add", "path": "/spec/deployments/database/resources", "value": {"limits": {"memory": "16Gi"}, "requests": {"memory": "32Mi", "cpu": "25m"}}}]'
다음 명령을 실행하여 검색 Operator가 변경 사항을 덮어쓰지 않도록 합니다.
oc annotate search search-v2-operator search-pause=true
다음 명령을 실행하여
search-postgres
YAML 파일에서 리소스를 업데이트합니다.oc edit cm search-postgres -n open-cluster-management
리소스를 늘리려면 다음 예제를 참조하십시오.
postgresql.conf: |- work_mem = '128MB' # Higher values allocate more memory max_parallel_workers_per_gather = '0' # Disables parallel queries shared_buffers = '1GB' # Higher values allocate more memory
종료하기 전에 변경 사항을 저장해야 합니다.
다음 명령을 실행하여
postgres
및api
pod를 다시 시작합니다.oc delete pod search-postgres-xyz search-api-xzy
변경 사항을 확인하려면
search-postgres
YAML 파일을 열고 다음 명령을 실행하여postgresql.conf:
에 대한 변경 사항이 있는지 확인합니다.oc get cm search-postgres -n open-cluster-management -o yaml
환경 변수 추가에 대한 자세한 내용은 사용자 정의 및 구성 검색을 참조하십시오.