아파치 메모리 누수..

룰루의 이미지

안녕하세요..

몇가지 조언을 구하고자 글을 올립니다.

현재 시스템 상황은 다음과 같습니다.

ㅁ웹서버 설정
- OS : AS2.1 Kernel : 기본커널

- 어플리케이션 : Apache 1.3.29 , PHP-4.3.4 Oracle Client 9.0.2.1

아피치 컴파일 옵션

./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --enable-module=php4 --enable-module=headers --enable-module=so --enable-shared=max --enable-rule=SHARED_CORE


php의 oci함수를 이용해서 오라클서버에 접속.

- httpd.conf 설정

KeepAlive Off

MinspareServer 5

MaxSpareServer 10

MaxRequestPerChild 0

ㅁ DB서버
- OS : AS2.1 (기본커널) Oracle 9.0.2.1

이런 상태에서 웹서비스를 합니다. 동시접속자수는 초당 5명 정도 붙는거 같고.
근데 문제는 아파치 차일드 프로세서가 메모리 반환을 제대로 못한다는 겁니다..혹시나 커널 문제일까 싶어..커널을 2.4.25로 업그레이드를 했지만
역시나 증상은 같습니다..
여러모로 메모리가 어디서 누수되는지 찾아봤지만 소스에도 문제가 없는거 같고 해서 찾다가 찾다가 못찾아서..아파치 설정을 약간 수정했습니다.
Maxrequestperchild 설정을 2000정도로 설정하게 되면 아파치 차일드 프로세서가 2000건의 웹요청을 처리하고 재생성 되므로 메모리를 반환하고 차일드 프로세서는 재생성 됩니다..

그래서 임시방편으로 이렇게 해서 세팅을 해서 사용하고 있습니다..
MaxrequestPerChild 2000으로 설정을 하게 되면 메모리 관리는 임시방편으로 가능합니다.
근데 어는 순간부터..아파치 차일드 프로세서가..한건 처리하고 죽고 한건처리하고 죽고 이런식으로 운영됩니다..서버에서 강제로 아파치 차일드프로세서를 죽입니다.
강제로 아파치가 죽게되므로..아파치 차일드 프로세서는 defunct상태에서 죽습니다. 웹서버의 CPU나 메모리 사용률은 극히 저조합니다..
그리고 동일한 웹서버2대로 라우드로빈 방식으로 운영중인데 2개의 서버의 증상이 동일합니다.
서버의 아파치 상태는 부모프로세서 한개와..차일드 프로세서가 유동적으로
한개에서 최대 5~10개로 왔다갔다 합니다..

클라이언트에서 아파치 웹서버에 웹요청을 하기되면 ..그순간 아파치 부모프로세서가반응을 하게되고 차일드 프로세서를 띄우므로 약간의 웹접속이 지연되는 증상이 나타납니다..

아파치 데몬을 리스타트하기 되면 한동안은 문제없이 돌아가는데..하루정도 운영하게 되면 또 증상은 나타납니다..

그리고 다른 서비스 환경의 동일 컴파일옵션과 동일 서버로 DB를 mysql로 접속하는 서버는 문제가 없는데..유독 오라클로 접속하는 서버에만 문제가 발생합니다..

혹시..오라클과 php(oci함수)에 버그가 있는게 아닐까도 생각해 봤습니다만..
특별한 버그 리포트를 찾지 못했습니다..

뭐가 문제 일까요..?

김정균의 이미지

php 를 업데이트 해 보십시오. 4.3.4 와 4.3.5 는 버그로 악명
높은 버전입니다.

룰루 wrote:
안녕하세요..

몇가지 조언을 구하고자 글을 올립니다.

현재 시스템 상황은 다음과 같습니다.

ㅁ웹서버 설정
- OS : AS2.1 Kernel : 기본커널

- 어플리케이션 : Apache 1.3.29 , PHP-4.3.4 Oracle Client 9.0.2.1

아피치 컴파일 옵션

./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --enable-module=php4 --enable-module=headers --enable-module=so --enable-shared=max --enable-rule=SHARED_CORE


php의 oci함수를 이용해서 오라클서버에 접속.

- httpd.conf 설정

KeepAlive Off

MinspareServer 5

MaxSpareServer 10

MaxRequestPerChild 0

ㅁ DB서버
- OS : AS2.1 (기본커널) Oracle 9.0.2.1

이런 상태에서 웹서비스를 합니다. 동시접속자수는 초당 5명 정도 붙는거 같고.
근데 문제는 아파치 차일드 프로세서가 메모리 반환을 제대로 못한다는 겁니다..혹시나 커널 문제일까 싶어..커널을 2.4.25로 업그레이드를 했지만
역시나 증상은 같습니다..
여러모로 메모리가 어디서 누수되는지 찾아봤지만 소스에도 문제가 없는거 같고 해서 찾다가 찾다가 못찾아서..아파치 설정을 약간 수정했습니다.
Maxrequestperchild 설정을 2000정도로 설정하게 되면 아파치 차일드 프로세서가 2000건의 웹요청을 처리하고 재생성 되므로 메모리를 반환하고 차일드 프로세서는 재생성 됩니다..

그래서 임시방편으로 이렇게 해서 세팅을 해서 사용하고 있습니다..
MaxrequestPerChild 2000으로 설정을 하게 되면 메모리 관리는 임시방편으로 가능합니다.
근데 어는 순간부터..아파치 차일드 프로세서가..한건 처리하고 죽고 한건처리하고 죽고 이런식으로 운영됩니다..서버에서 강제로 아파치 차일드프로세서를 죽입니다.
강제로 아파치가 죽게되므로..아파치 차일드 프로세서는 defunct상태에서 죽습니다. 웹서버의 CPU나 메모리 사용률은 극히 저조합니다..
그리고 동일한 웹서버2대로 라우드로빈 방식으로 운영중인데 2개의 서버의 증상이 동일합니다.
서버의 아파치 상태는 부모프로세서 한개와..차일드 프로세서가 유동적으로
한개에서 최대 5~10개로 왔다갔다 합니다..

클라이언트에서 아파치 웹서버에 웹요청을 하기되면 ..그순간 아파치 부모프로세서가반응을 하게되고 차일드 프로세서를 띄우므로 약간의 웹접속이 지연되는 증상이 나타납니다..

아파치 데몬을 리스타트하기 되면 한동안은 문제없이 돌아가는데..하루정도 운영하게 되면 또 증상은 나타납니다..

그리고 다른 서비스 환경의 동일 컴파일옵션과 동일 서버로 DB를 mysql로 접속하는 서버는 문제가 없는데..유독 오라클로 접속하는 서버에만 문제가 발생합니다..

혹시..오라클과 php(oci함수)에 버그가 있는게 아닐까도 생각해 봤습니다만..
특별한 버그 리포트를 찾지 못했습니다..

뭐가 문제 일까요..?

룰루의 이미지

혹시 apache + php-4.3.8 + oracle.9.0.2.1로 연동설치 해보셨나요..?

4.3.5설치 할때와 같은 컴파일 옵션으로 설치하면 컴파일은 문제없이 되는데 오라클 연동이 안되던데요..?

룰루랄라

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.