커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 데이터베이스(database) > PostgreSQL 도움말
검색 : 사이트 WHOIS 웹서버 종류


  PostgreSQL에서 semaphore 에러발생시 작성일 : 2006/06/27 16:18
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 7616
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : PostgreSQL에서 semaphore 에러발생시
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2006.4.28(금)

    FreeBSD에서 PostgreSQL 설치후에 initdb 실행할 때, 다음과 같은 에러가 발생한다면 커널 파라미터에서
    semaphore 설정값을 늘려주면 해결이 가능하다.

     
    creating configuration files ... ok
    creating template1 database in /usr/local/pgsql/data/base/1 ...
    FATAL: could not create semaphores: No space left on device
    DETAIL: Failed system call was semget(1, 17, 03600).
    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 parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter (currently 10).
    The PostgreSQL documentation contains more information about configuring your system for PostgreSQL.
    child process exited with exit code 1
    initdb: removing data directory "/usr/local/pgsql/data"
     


    먼저 semaphore 정보를 살펴보자.

     
    # ipcs -S
    seminfo:
            semmap:           30    (# of entries in semaphore map)
            semmni:           10    (# of semaphore identifiers)
            semmns:           60    (# of semaphores in system)
            semmnu:           30    (# of undo structures in system)
            semmsl:           60    (max # of semaphores per id)
            semopm:          100    (max # of operations per semop call)
            semume:           10    (max # of undo entries per process)
            semusz:           92    (size in bytes of undo structure)
            semvmx:        32767    (semaphore maximum value)
            semaem:        16384    (adjust on exit max value)
     


    이 값을 변경하려면 어떻게 해야할까? sysctl read-only 값이어서, sysctl 명령으로는 이들 설정 값을
    확인할 수는 있으나 수정은 할 수 없다. /boot/loader.conf 에 다음을 추가해주고 리부팅해줘야 한다.
    semmni = 10, semmns = 60인데 이를 약 2배 정도로만 올려본 경우이다.

     
    kern.ipc.semmni="20"
    kern.ipc.semmns="120"
     



    * 참고자료
      FreeBSD Handbook Chapter 11 Configuration and Tuning
      http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/configtuning-sysctl.html

      커피닉스 카페 최근 글
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~