일단은 사정이 어떻게 되는지는 몰라도 꼭 그렇게 해야 하는 이유가 있는가요. PostgreSQL 은 데몬 하나만 뛰우고, 디비를 50개 정도 만들어서 운영을 하면 충분히 원하는 효과를 얻을 수 있는데 포트별로 그렇게 꼭 데몬을 뛰워야 하는 이유를 이해하지 못하겠군요.
다음으로 Apache 의 경우 virtual hosting 기능을 이용하면 하나의 데몬으로도 충분히 수백개의 사이트를 운용할수도 있는 데 이 역시 데몬을 포트별로 50개씩 뛰우는 이유를 이해하지 못하겠군요. 그렇게 무리해서 서버를 구성시켜야 하는 이유가 없을 것 같습니다.
그리고 메모리때문에 문제가 된다면 shmfs 를 지원해 주는 커널 2.4를 이용해 보시길 권장 드립니다. shared memory 를 fs 시스템처럼 운영해 주므로 공유메모리에 크게 연연해 할 필요성이 없어 집니다. 그리고 PostgreSQL 도 7.1 을 설치해 보시기 바랍니다. 모든 면에서 이전 버전보다는 나아졌습니다.
>>심경훈 님께서 쓰시길<<
:: 커널 버젼 2.2.15 를 사용하고 있습니다.
:: postgresql 6.51 인데... pgsql 을 한꺼번에 51를 띄우고
:: apache 를 다시 한꺼번에 51개를 띄워서 포트별로 총 51개의 사이트를 움직이려고 하는데 30개 정도에
:: 서 에러가 나요..
:: /B
:: /usr/local/pgsql/bin/postmaster /iS /N 4 /B 16 / D /usr/local......(디렉토리 경로 지정)..
::
:: 이런식의 명령어를 스크립트로 한꺼번에 처리하게해서 DB를 구동 시키는 방식으로 하고 있습니다. 중
:: 간에 약 30개를 넘어가는 과정에서 에러가 공
::
:: IpcMemoryCreate : shmget failed (장치에 남은 공간이 없음) key=11043007, size=96088, permission=6
:: 00
:: SISegmentGet=failed:장치에 남은 공간이 없음
:: FATAL 1 : CreateSharedInvalidationState : failed segment init
::
:: 이렇게 에러가 나옵니다.
:: 여기 저기 document 를 뒤져보니깐 /B 버퍼 메모리크기를 조정하라고 해서
::
:: /usr/local/pgsql/bin/postmaster /iS /N 4 /B 64 / D /usr/local......(디렉토리 경로 지정)..
::
:: 이렇게 하니깐 33개까지 실행이 되구요
::
:: /usr/local/pgsql/bin/postmaster /iS /N 4 /B 32 / D /usr/local......(디렉토리 경로 지정)..
::
:: 이렇게 하니깐 41개까지 실행이 되구요
::
:: /usr/local/pgsql/bin/postmaster /iS /N 4 /B 40 / D /usr/local......(디렉토리 경로 지정)..
::
:: 이렇게 하니깐 42개까지 실행이 됬습니다.
::
:: 어떤식으로 해결해야 할지 모르겠습니다.
:: 제발 부탁 드립니다...
::
:: 너무 급하거든요.....
::
:: 서버 사양은 듀얼850 스카시 하드 18기가 swap 파티션 1024(램 512) 로 했습니다.
:: 고수님들의 답변 부탁 드립니다....
|