검색결과 리스트
글
max_connections 와 커널파라메터
POSTGRESQL
2014. 10. 27. 19:41
postgresql 의 max_connections 값을 증가시키고 나서 클러스터(인스턴스) 기동 시 다음과 같은 오류가 발생할 수 있습니다.
아래는 커널파라메터 값을 수정하는 방법입니다.(root권한이 필요합니다.)
1. 커널파라메터 확인 : Semaphore Limits 부분의 max number of arrays 항목을 확인합니다.
2. 커널파라메터 수정
SEMMNI = (max_connections + autovacuum_max_workers + 4) / 16
FATAL: could not create semaphores: No space left on device [2012-10-24 16:49:55.313 KST][][][][][20731]DETAIL: Failed system call was semget(5433033, 17, 03600). [2012-10-24 16:49:55.313 KST][][][][][20731]HINT: This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameterively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter (currently 510). The PostgreSQL documentation contains more information about configuring your system for PostgreSQL.이러한 오류는 max_connections 파라메터가 SEMMNI라는 세마포어 관련 커널 파라메터값을 초과해서 발생되는 오류로 커널 제한값을 늘리거나 postgresql의 max_connections 값을 줄여서 해결할 수 있습니다.
아래는 커널파라메터 값을 수정하는 방법입니다.(root권한이 필요합니다.)
1. 커널파라메터 확인 : Semaphore Limits 부분의 max number of arrays 항목을 확인합니다.
$ ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 67108864 max total shared memory (kbytes) = 17179869184 min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 128 max semaphores per array = 250 max semaphores system wide = 32000 max ops per semop call = 32 semaphore max value = 32767 ------ Messages: Limits -------- max queues system wide = 16 max size of message (bytes) = 65536 default max size of queue (bytes) = 65536
2. 커널파라메터 수정
$ vi /etc/sysctl.conf kerlel.sem=250 256000 32 128 ## 네번째 값이 SEMMNI이고 이 값을 증가시켜야 합니다.(세마포어 배열의 최대갯수). $ sysctl -p /etc/sysctl.conf ## 수정한 값으로 리로드 합니다.파라메터를 구하는 공식 :
SEMMNI = (max_connections + autovacuum_max_workers + 4) / 16
'POSTGRESQL' 카테고리의 다른 글
[9.4 beta]ALTER SYSTEM 구문을 이용한 파라메터 변경 (0) | 2014.10.29 |
---|---|
table inheritance(상속) (0) | 2014.10.28 |
postgresql DBLINK 예제 (0) | 2014.10.27 |
gdb로 postgresql backend process 디버깅하기 (0) | 2014.10.26 |
table/index bloat 점검하기 (0) | 2014.10.26 |