아파치 rpm,deb,ebuild 등등 limit 256

송효진의 이미지

저는 젠투 사용자라 CFLAGS="-D~~~~=1024" emerge apache
하면 적용이 되어 별 생각 없었는데,
기본적으로 아파치 소스에 있는 256 제한을 왜 그냥 두는걸까요?
요즘 512 정도는 기본으로 버텨주고,
성능 좀 좋으면 1024도 버티던데요.
(prefork 모드 얘기입니다.
worker 모드는 아무래도 메모리를 너무 잡는것 같아서 안쓰게 되네요.)

httpd.conf 설정으로도 제한을 걸 수 있는데,
왜 힘들게 소스컴파일을 다시 해야 하도록 소스상에 hard limit 을 256 으로 놔두는거죠?

특별한 이유가 있을까요?

cjh의 이미지

apache를 요즘 좋은 서버의 linux 사용자만 사용하는게 아니고 구식 서버나 다른 유닉스 계열에서도 잘 돌아가지요.
그런 점을 고려한 소스 수준 제한이 아닐까 합니다. 필요한 사람은 풀어서 쓰면 되는 것이고...

--
익스펙토 페트로눔

--
익스펙토 페트로눔

송효진의 이미지

그러니까 필요한 사람 풀어 쓰는 그것이 소스컴파일이 필요하다는 것이지요.
httpd.conf 에만 적절히 해주면 되는것을 어렵게 가는것이 불만이라는 것입니다.^^

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

김정균의 이미지

저희는 256도 넘칩니다 ^^; CPU 사용률을 고려했을 때 정상적인 서비스시에 80개 정도의 프로세스가 사용중이고, 150개가 넘어가면 2G 메모리를 다쓰고 swapin 상태에 빠져서 서버가 먹통이 되거든요. dynamic 환경에서는 256개도 넘친다고 생각됩니다. :-) (물론 제가 있는 회사의 서비스상의 특성이겠죠 ^^)

송효진의 이미지

그럼 제가 뭔가 모니터링을 잘못했던지,
그 숫자에 대해 오해하고 있는게 있나보네요.
메모리는 3G 꽂았으니 512 찰 일이 없었던게 되는군요.

요즘도 소스설치 '따라하기' 문서가 새로 만들어져서
바이너리를 권하는데 256 이 걸림돌이 된다고 생각했었습니다.
그다지 상관 없겠군요.

적극 바이너리를 권하도록 해야 겠습니다.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

김정균의 이미지

무조건이라고는 할 수 없습니다.

권장을 하는 것은 바이너리를 써라 쓰지마라가 아니라, 될 수 있으면 배포본에서 제공하는 패키지로 만들어서 사용을 해라가 권장 사항이 아닌가 싶습니다. 환경에 따라 변수가 많기 때문에 관리 차원에서 패키지로 만들어 높으면 업그레이드도 편하고 배포도 편한등 유지보수 비용이 낮아지기 때문입니다.

하지만 왠만한 환경에서..는 바이너리를 사용해도 크게 문제가 없다고 생각을 합니다. 저도 패키징을 할 때 HARD LIMIT 를 1024 로 늘려서 했었는데.. 기본값들이 그렇게 값을 가지는 것은 다 이유가 있더군요. ^^; apache process size 가 10M 라고 한다면, 124개의 프로세스가 뜨면 1G의 메모리가 필요한 것과 같다고 판단을 하면 되는 거죠. 요즘에는 하도 이기능 저기능 다 넣고 빌드하시는 지라 idle http process 도 10M 정도는 될 겁니다.

성능을 위해서 빌드를 하신다고 생각을 하신다면.. apache + php 를 완전 static 으로 빌드를 해 보시기 바랍니다. 아마 빌드하기가 쉽지 않을 겁니다. 대부분 apache + php 를 정적으로 빌드하는 문서들을 보면 libphp.a 만 httpd binary 에 넣는 것이지 실제 httpd binary 는 static 하지 않습니다. ldd httpd 해 보면 dynamic link 가 걸려 있는 라이브러리들이 주르륵 나올 겁니다. 완전 static 하게 빌드를 하려면 수많은 라이브러리 의존성을 수작업으로 걸어줘야 하거든요. 잘 보이지도 않는 com_err library 같은 것들 말이죠. 저도 안녕 리눅스의 패키지 관리를 하면서, 그리고 네오위즈와서 아파치 빌드하면서 "의존성" 이라는 것에 대하여 제대로 이해를 한 것 같거든요.

그리고 배포되는 바이너리에는 빌드하시는 분들 보다 월등하게 내공이 높으신 분들의 패치들이 포함이 되어 있습니다. 이것들도 무시할 수 없지요.

P.S
빌드를 하다보면 library link 에 대한 의존성에 대해서 개발자들이 더 잘 알것 같은데, 의외로 이해를 못하시는 분들이 많더군요. compiler 에 -l 옵션으로 라이브러리 링크 하시는 것은 잘 아는데, 시스템에서 라이브러리 의존성에 대해서는 똑 같은 것임에도 불구하고 왜 그러는지 이해를 못하시더군요. 특히 rpm 을 사용하는 배포본에 대해서 더 그러는 것 같습니다. ^^

송효진의 이미지

다른곳에 답변 다느라 이 글을 찾았습니다.
요즘은 worker 로 쓰고 있고,
MaxClients 는 conf 기본값인 150 놓고 씁니다.
2~3GB 에서는 그 이상은 안올리는게 낫더군요.
이렇게 해 놓아도 가끔 SwapCached 를 사용하는데,
그렇다는건 넘친다는거겠죠.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

impactbar의 이미지

httpd.conf 안의 maxclients는 최대 256이지만

ServerLimit xxxx 로 설정하면

maxclients는 xxxx-2개까지 가능한걸로 알고 있습니다.

그리고 ServerLimit는 최대 2만인가로 알고 있는데 가물가물하군요. 5천이었나....^^;

송효진의 이미지

20,000 맞습니다.
글타래 핵심은 이게 아닌데... ^^;;;;;

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

댓글 달기

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