CATEGORY

superman (30)
프로그래밍 (17)
안드로이드 (0)
Utility (1)
Mail (1)
개인정보 (1)
Complete Program (0)
Entertain (6)
IT news (2)
Oracle (0)
컴퓨터 (1)

RECENT ARTICLE

RECENT COMMENT

RECENT TRACKBACK

ARCHIVE



  1. 2010.12.28
    apache mutex 에러

apache 에서 mod_ssl을 설치를 완료하고.

# ./apachectlstartssl   실행시 아래와 같은 에러를 만나는 경우가 있습니다.

[Fri Mar 16 10:42:59 2007] [emerg] (13)Permission denied: couldn't grab the accept mutex
[Fri Mar 16 10:42:59 2007] [emerg] (13)Permission denied: couldn't grab the accept mutex
[Fri Mar 16 10:42:59 2007] [emerg] (13)Permission denied: couldn't grab the accept mutex
[Fri Mar 16 10:42:59 2007] [emerg] (13)Permission denied: couldn't grab the accept mutex



** 위와 같은 문제가 발생한다면, ssl.conf에 (설정에 따라 httpd.conf에)

AcceptMutex flock
LockFile /usr/local/Apache2/logs/httpd.lock

를 추가해 주면 이상없이 동작하게 됩니다.



이해를 돕고자 관련 내용을 대한 적어 봅니다.


1. AcceptMutex 란?
  : apache performance tuning 에 관련 내용이 설명 되어 있습니다.

http://httpd.apache.org/docs/2.0/en/misc/perf-tuning.html


Mutex(Mutual Exclusion) : '상호 배제' 임계 구역을 가진 thread(쓰레드)들이 동시에 실행 되지 않고, 상호 배제되어 실행되는것을 말합니다.

apache 에서는 이 Mutex를 사용합니다. (보다 자세한 것은 위의 링크를 참고 하세요. 자세히 나와 있습니다.) 이런 Mutex 방식을 변경해주는것이 "AcceptMutex" 입니다.

AcceptMutex flock

This method uses the flock(2) system call to lock a lock file (located by the LockFile directive).

이 방법은 잠금 파일(a lock file)을 잠그기 위해(to lock) flock(2) system call를 사용한다 (LockFile directive에 의해 위치 되어진다.)


AcceptMutex fcntl

This method uses the fcntl(2) system call to lock a lock file (located by the LockFile directive).

이 방법은 잠금 파일(a lock file)을 잠그기 위해(to lock) fcntl(2) system call를 사용한다 (LockFile directive에 의해 위치 되어진다.)


기타

AcceptMutex sysvsem
AcceptMutex pthread
AcceptMutex posixsem



가장 많이 사용되어지는 'AcceptMutex flock', 'AcceptMutex fcntl' 만 적어 봤습니다. 자세한 것은 아파치 메뉴얼(위의 링크)를 참고 하십시오.



2. mod_ssl 의 Mutex 는?
  : mod_ssl 의 Mutex를 설정 방법도 존재 합니다.(ssl.conf 혹은 httpd.conf)

http://httpd.apache.org/docs/2.0/en/mod/mod_ssl.html


mod_ssl 의 설정은

# SSLMutex 로 설정 합니다.
SSLMutex file:/usr/local/apache/logs/ssl_mutex

** SSLMutex 의 경우 AcceptMutex 지시어가 있을 경우에는 사용이 되지 않습니다. **
** 즉, 지시어가 두 개 있을 경우 AcceptMutex 가 우선시 됩니다. **


"ssl.conf" 의 Mutex 설정을 보면

SSLMutex file:/usr/local/apache/logs/ssl_mutex

이렇게 되어 있습니다. 이 의미는 'fcntl() 와 flock()' 중에서 선택하여 시스템에 가장 적절한 lock 방식을 채택해 준다는 말입니다. 다른 문법은 위의 apache manual(링크)를 확인하시면 됩니다.



3. 그러면 문제가 왜 발생 하는가?
  1) 잠금파일(lock file)가 제대로 구현 되지 않을 때.
  2) 시스템에서 lock file을 지원하지 않을경우

전자는 맨 윗글의 'AcceptMutex' 와 'LockFile'를 직접 지정해 주면, 해결이 됩니다. (SSLMutex 와 AccecptMutex 가 두 개 일때는 AcceptMutex가 우선 됨을 잊지 마세요.)
후자의 경우 관련 방식을 변경해 가며 해당 시스템에 맞는 설정을 맞춰 나가야 합니다. 
 

============================================================================

Wed Aug 25 18:20:50 2010] [notice] Apache/2.0.58 (Unix) configured -- resuming normal operations
[Wed Aug 25 18:21:54 2010] [emerg] (28)No space left on device: couldn't grab the accept mutex
[Wed Aug 25 18:21:55 2010] [alert] Child 9597 returned a Fatal error... Apache is exiting!
[Wed Aug 25 18:21:55 2010] [emerg] (28)No space left on device: couldn't grab the accept mutex
[Wed Aug 25 18:21:55 2010] [emerg] (36)Identifier removed: couldn't grab the accept mutex
[Wed Aug 25 18:21:55 2010] [emerg] (36)Identifier removed: couldn't grab the accept mutex
[Wed Aug 25 18:21:55 2010] [emerg] (36)Identifier removed: couldn't grab the accept mutex

 

위와 같은 오류 사항이 발생하며

조치사항으로 httpd.conf 에

AcceptMutex fcntl

을 추가.

'프로그래밍 > WEB' 카테고리의 다른 글

jQuery & ajax 통신  (0) 2011.03.23
apache Virtual host 세팅  (0) 2010.12.28
페이지 로딩속도 단축  (0) 2010.12.28
And