아파치 2.0.5x 쓰레드

송효진의 이미지

에휴...언제쯤 mpm-worker 로 안정적인 동작을 보여줄지...

현재 테스트한 최종 버전은
apache2.0.55 php5.0.5
입니다.

버전이 좀 낮을 때는 worker 로 돌긴 했는데,
자식 프로세스가 좀비가 되어 (쓰레드 특성상 좀비된게 안보여요-_-; 같이 물린 pgsql 이 잔뜩 떠있어서 짐작으로 아는거죠.) 쌓여서 뻗는 현상이 있었는데,

이번에 amd64 로 새로 깔면서 테스트해보니 아예 뜨지를 않네요.
apache2ctl -k start 하면
아무소리 없이 대몬이 안뜨고 끝입니다.

눈물을 머금고 mpm-prefork 로 했어요.
경험상 분명히 mpm-worker 가 성능이 체감되게 향상되기 때문에,
버전 올라갈 때 마다 한번씩 실험해 보네요.

2.1 멋지게 나왔으면 좋겠네요.

옵테론을 march=k8 로 설치했는데,
icc 로 컴파일 한 젠드 옵티마이저 2.5.10 은 잘 붙네요.
처음에 파일명만 보고 인텔64 전용인줄 알고 긴장했는데 ㅎㅎ

dharana의 이미지

저도 빠른 성능이 필요해서 worker 모드를 FreeBSD 에서 컴파일 해봤습니다.
한 1년 정도 되서 잘 기억은 안 납니다만 아파치 2.0.5x 에 PHP 5.0.x 를 사용해서 --enable-maintainer-zts 옵션을 주고 해서 컴파일에는 성공했습니다. 저 옵션을 안 주니 컴파일 에러가 나더군요.

실행해보면 초반 얼마 정도는 돌아가는 듯 하더니 곧 제대로 응답하지 않더군요. 테스트 환경은 APM 에서 돌아가는 제로보드였습니다.

구글링해보니 (2003년 글이긴 합니다만) 이런 얘기도 나오는군요. 다른 것도 있습니다만, 아래 링크가 그간 찾은 것 중에서는 제일 설명이 잘되어 있는 것 같습니다. 다른 결과도 비슷한 얘기들을 하고 있구요.
http://groups.google.com/group/php.general/msg/9031e5112f534413
요점은 PHP core 는 Thread safe 가 가능하나 3rd party 라이브러리들이 문제라는 겁니다.

그래서 PHP 컴파일 시에 안 사용하는 모듈을 빼봤습니다만, 위와 같이 컴파일은 되나 실행시 죽는 결과가 나타났습니다. 이 부분은 정확히 어떤 모듈이 문제가 되는 지 몰라서 제가 제대로 못한 것일수도 있습니다.

위 구글 검색 결과서 제시하는 다른 방법은 factcgi 를 이용해서 mod_php 를 사용하지 말라는 것이었습니다. 그래서 fastcgi 를 찾아봤습니다만 자료가 부족해서 실제로 테스트는 못해봤습니다. 어떻게 설치하는 지 조차 잘 모르겠더군요.

그 외 검색 결과들은 대부분 PHP 사용시 prefork 모드를 사용하라고 권하더군요. PHP 공식 지원은 prefork 모드 뿐이라면서요. 수세는 검색결과 그런 말이 나왔고, 데비안은(사지, 직접 해본 결과) 그냥 apache2 를 설치하면 worker 로 깔립니다만, PHP를 설치하면 prefork 를 찾으면서 worker 는 지워버립니다. apt 로 할 때의 결과고 소스 컴파일은 안 해 봤습니다.

송효진님 글타래가 올라온 지 꽤 됐습니다만, 이번에 서버 세팅을 새로 하면서 worker 모드를 다시 시도해 보려고 검색하는 중에 발견했습니다. 혹시나 뒷분들을 위하는 마음에 그간 기록을 남겨 봅니다.

댓글 달기

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