2013-04-11 1 views
0

postgres.config에서 pgtune을 테스트 했으므로 변경할 수있는 항목을 알고 있지만 max_connections 또는 shared_buffers를 변경하려고하면 postgres를 다시 시작할 수 없습니다. 방금 오류가 발생했지만 오류를 지정하는 로그에는 아무것도 없습니다. (확실하지 이러한 로그 가고 있지만 일반 pg_log의 디렉토리에없는 경우.)max_connections 또는 shared_buffers를 변경 한 후에 PostgreSQL을 다시 시작하지 않습니다

내 설정은 다음과 같습니다

shared_buffers = 24MB # (pgtune wizard 2013-04-11 = 120MB) 
max_connections = 120 # (pgtune wizard 2013-04-11 = 200) 

임 단지의 PostgreSQL를 실행하는 512 linode에. shared_buffers를 24MB 이상으로 변경하거나 max_connections를 120 이상으로 변경하면 포스트그레스를 다시 시작할 수 없습니다.

나는 우분투 12.04.2 LTS와 Linode 젠 인스턴스에서 실행 해요

:

Ubuntu 12.04.2 LTS (GNU/Linux 3.8.4-x86_64-linode31 x86_64) 

아는 사람은 자기가 24메가바이트을 결정하고 (120 개) 연결이 내 시스템에 대한 최대 인 그레스 경우?

+0

어떤 운영 체제를 사용하십니까? –

+0

우분투 12.04.2 LTS (GNU/Linux 3.8.4-x86_64-linode31 x86_64) –

답변

1

아마도 공유 메모리에 대한 기본값이 매우 낮을 것으로 생각됩니다.

이 내용은 설명서에서 다룹니다. operating system resource limits을 참조하십시오. Linux의 경우 kernel.shmmax을 참조하십시오.

참고로 증가하는 max_connections은 종종 잘못된 답변입니다. 대부분의 PostgreSQL 인스턴스는 상대적으로 적은 수의 활성 연결에서 가장 잘 작동합니다. 연결 풀링을 사용하여 작업을 대기열에 넣는 것이 가장 좋습니다. 리소스 사용량을 줄이면 전반적인 처리량이 향상됩니다. 응용 프로그램에 연결 풀이 내장되어 있지 않으면 PgBouncer를 외부 연결 풀로 사용할 수 있습니다.

+0

설명서를 보자.하지만 요점이 있다면 서버 설정을 변경해야합니까? –

+0

@ Garreth00 PostgreSQL을 시작하게 만드는 원인에 대한 내 추측 *이 맞다고 가정합니다. 자세한 정보는 로그를 확인해야합니다. PostgreSQL 로그 자체에 없다면'daemon.log'에있을 수도 있습니다. PostgreSQL을 어떻게 멈추고/시작하고 있습니까? –

+0

@CraigRinger에 동의합니다. 내 경험은 VM (Linode는 VM?)이고 공유 메모리가 잘 섞이지 않는다는 것입니다. 아마도 mem은 물리적 메모리에 고정되어있을 것이고 VM은 리소스가 부족할 것입니다. IMHO 대신 estimated_cache_size를 increse해야하고 최소한 mem mem을 유지해야합니다 (카탈로그 캐싱, 세션 데이터 저장 및 semafores 등). – wildplasser

관련 문제