매일 일정시간에 뻗어버리는 apache

권순선의 이미지

다름이 아니라 이곳 bbs.kldp.org 서버의 apache 이야기입니다.
아시다시피 요즘은 매일 접속이 되지 않는 사태가 발생하고 있습니다. 오늘은 연휴라 제가 친구들과 놀러가느라고 하루종일 자리를 비웠었는데 돌아와서 확인해 보니 또 접속이 되지 않더군요. 아마 오후들어 계속해서 문제가 있지 않았나 생각됩니다.

증상은 다음과 같습니다.

/etc/init.d/apache start 를 실행시키면 소유자가 root인 apache 프로세스 한개와 여기에서 www-data 소유의 apache 프로세스 여러개가 fork됩니다. 그런데 알수없는 이유로 인하여 매일 root 소유의 apache 프로세스가 사라지고(아마 어떤 이유로 인해 종료된 것이 아닌가 합니다.) www-data 소유의 프로세스만 몇 개 남아있는 상태가 되는데 바로 이때 접속이 되지 않는 상태가 되어버리는 것입니다. fork가 되지 않기 때문이죠. /var/log/apache/error.log 등을 봐도 특별히 문제가 될만한 사항이 보이지 않고 어떤 원인에 의해서 이런 현상이 발생하는지 알수가 없는 상황입니다. 이 문제를 어떻게 접근해서 해결해야 할지 혹시 힌트가 될만한 사항이 있으면 알려 주세요....

rokmn3309의 이미지

아마도 누군가가.. 고의적으로 아파치 버그를 이용해서 그렇게 하는게 아닐까요?

요즘 버전으로 업데이트 하는건 어떨지..

권순선의 이미지

버전은 문제가 없습니다. 현재 이곳 bbs.kldp.org에서 사용하고 있는 apache는 debian의 최신버전 패키지입니다.

서정민의 이미지

해결책은 안 떠오릅니다만,

일단 크론으로 process status(ps)를 계속 로그를 해주면서 어떤 일정한 시간 혹은 어떤 순간에 프로세스가 죽는지 한번 체크해보십시오. 아무런 대답을 바로 찾을 수 없을 때는 최대한 많은 정보를 모으는게 해결책으로 한걸음 다가가는 것이 아닐런지..

별 도움이 안될지도 모르지만..

choissi의 이미지

그 당시의 아파치
error_log를 확인해 보면 뭔가를 얻을 수 있지 않을까요?

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

yongjoo의 이미지

제가 경험한 경우는 이런 것이었습니다.

아직 불안정 버전이던 데비안 우디를 powerpc에서 돌리고 있었는데 어느날 php가 4.1로 업그레이드 되면서 갑자기 php의 session 기능이 동작하지 않았습니다. 이리 저리 테스트해 보고 버그 리스트도 살펴보고 하다가 아무래도 새로운 php 패키지의 버그인 것 같아서 버그를 보고하고 감자의 php와 아파치로 다운그레이드 해놓고 있었습니다.(아파치는 의존성이 걸려서 함께 다운그레이드)

그리고 나중에 버그 리스트에 임시 땜방용 방법이 올라왔는데 php.ini 설정에서 session 관련 옵션을 조정하는 방법이었습니다. session 기록을 메모리에 유지하지 않고 /tmp 파일에 쓰는 옵션이던가 뭐 그런 것이었는데, 일단 이 방법으로 session 기능이 잘 되는 것을 확인하고 기쁜 마음으로 다시 php를 4.1로 업했는데.. 좀 지나고 보니 페이지에 접근할때 수시로 접속이 끊어지는 현상이 한동안 계속되고, 나중에는 아파치 자체가 프로세스 리스트에서 사라져 있더군요!

그래서 아파치 로그를 살펴보니까 php 모듈이 에러를 내면서 아파치가 segmentation fault를 내고 계속 죽어 나가더군요. 그래서 눈물을 머금고 다시 php와 아파치를 다운그레이드 했습니다.

버그 리포트에 따르면 이 문제는 powerpc와 sparc에서 같이 발생하는 문제였고, 거의 일년 가까이 해결되지 않다가 우디가 안정버전 되고 나서도 한참 있다가 해결되었는데 문제의 원인은 php가 아니라 glibc의 버그에 있었다고 하더군요. 무슨 리틀 엔디안이 어떻고 빅 엔디안이 어떻고 그런 이야기가 나오던데.. 어려운 얘기는 잘 모르겠습니다 ~_~

그래서 요약하자면 -_-; 제가 경험한 경우는 php 모듈의 문제로 아파치가 죽어 나가던 경우였고, 에러 로그에 기록이 명확히 남아 있어서 그냥 다운그레이드하는 방법이라도 쓸 수가 있었다는 이야기입니다;;

그러나 무진장 널리 쓰이는 i386에서 이런 류의 문제가 있을 수 있다고는 생각하기 어려울 것 같네요. 이런 심각한 문제는 금방 발견이 되고 고쳐졌을 테니까 말이지요. 아마 새 기계에서 깨끗하게 다시 깔고 시작하면 잘 되지 않을까요? :roll: kldp.net 서비스 중단 기념으로 적어보았습니다 ㅡ.ㅡ;

박용주
yongjoo@kldp.org

권순선의 이미지

choissi wrote:
그 당시의 아파치
error_log를 확인해 보면 뭔가를 얻을 수 있지 않을까요?

아무것도 없습니다. 그냥 일상적인... 이러이러한 파일을 찾을 수 없다라는 에러 메시지와, 정상적으로 apache를 종료하거나 재시작할때 기록되는 메시지 뿐....
sunyzero의 이미지

core파일을 만들게 하셔서 살펴보시는게 좋을거 같습니다만...

message로그에도 아무 기록이 없나요?

========================================
* The truth will set you free.

number3의 이미지

정확한 상황은 잘은 모르겠지만,

1. netstat 을 통해서 network 에서 사용중인 포트를 확인해보시고,
다들 잘 알려진 문제지만, apache, mysql 이 붙을 때,
여러가지 측면에 포트를 물고 늘어지면서 time_wait 관련 문제를
만들어 내는 것은 아닌지 확인해보는 것도 좋겠네요.
(너무 단순한가요)

2. 혹시나 파일 디스크립터 갯수와 관련되서 커널 부분에 문제가 있을 수도
==> OCI 프로그램을 하는데,
이 경우때문에 linux 커널 버전때문에 디펑트가 나더군요.
커널을 2.4 대로 가져가이 디펑트도 안나고 잘 되더군요.
뭐 여기 관리자님이야 부지런하시니, 잘 하셨을 거 겠지만,

number3의 이미지

권순선 wrote:
버전은 문제가 없습니다. 현재 이곳 bbs.kldp.org에서 사용하고 있는 apache는 debian의 최신버전 패키지입니다.

시스템 관리자들은 그 이유때문에, 항상 최신버전 업그레이드를
주저합니다. 어느 정도 안정된 버전임이 확인되면 그때 이행하지요.
물론 크리티컬한 에러라고 한다면 달라지겠지만..

쩝.. 왜 잠은 안오는거야..

권순선의 이미지

일단 지금 두군데서 같은 이야기가 진행되고 있으므로 이쪽은 글을 잠그어 놓겠습니다. 답글 올려주신 분들께 감사 드리고, 이 사항에 대해서 떠오르는 것이 있으면 아래 게시물에 답글을 올려 주세요....

http://bbs.kldp.org/viewtopic.php?t=19484

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.