질문/조언질답게시판

사이트 규모가 그리 큰것은 아닙니다. 기껏해야 하루 방문자 1000명 이내인데...

문제는 신청서 접수 받는 경우  동접자수가 늘어나  서버가 다운되네요.

한번에 글쓰기를 해서 그렇다고 하더라도..카운터 보면 시간대별 접속자수가 100명도 안되는 상황인데..

이정도는 충분히 커버를 해야 할듯 싶은데.

 

물론 단독 서버에 다른 계정들도 같이 돌리고 있긴 하지만, 접속자수나 이용자가 그리 많은 사이트들이 아니라서.

 

혹시나 서버 설정 조정으로 이 문제를 해결 할 수 있을가해서 질문 남겨 봅니다.

 

 

  • profile
    혹시 php-fpm 을 이용하시나요?
    그렇다면 PHP-FPM pm.max_children 부분을 조정해보세요.
  • profile ?
    서버 phpinfo() 정보를 쪽지로 보내드렸는데...시간되시면 한번 검토 부탁드려도 될까요?
  • ? profile
    아파치 설정중 Keep-Alive 부분을 100에서 조금 높게 조정해보세요.
    /etc/apache2/apache2.conf 파일에
    MaxKeepAliveRequests 를 살짝 늘려보시고 /etc/apache2/mods-available/mpm_prefork.conf 파일을 열면 나오는거를 적당히 아래처럼 수정하세요. 상황에 맞게 조절하세요.

    <IfModule mpm_prefork_module>
    ServerLimit 1024
    StartServers 100
    MinSpareServers 25
    MaxSpareServers 50
    MaxClients 1024
    MaxRequestsPerChild 10000
    </IfModule>
  • profile profile

    아니예요. 거꾸로 하셔야 합니다.

    KeepAlive를 5초 이하로 줄이고, MaxKeepAliveRequests도 줄이고,
    mpm_prefork의 모든 설정을 가차없이 줄여버려야 합니다.

    서버 튜닝값에는 여유가 있으면 안됩니다.
    동접수 변동폭이 큰 서버일수록 좀 심하다 싶을 정도로 타이트하게 세팅해야 합니다.
    https://xetown.com/board/942553 이 글에서 그 결과를 알 수 있는데요...

    일반적인 APM 환경에서 XE를 구동한다면 ServerLimit = MaxClients = [서버 RAM 용량 x 5 이하]
    (DB 쪽 튜닝에 따라 4배수가 더 적합할 수도 있고 6배수가 더 적합할 수도 있지만,
    문제의 서버는 DB가 어떻게 되어 있는지 모르니 대략 5배수로 잡겠습니다.)
    예를 들어 RAM이 8GB라면 이 설정들이 40을 넘어서는 안됩니다.

    1024는 그냥 날 잡아 잡수~ 라는 얘깁니다.

    아파치 버전에 따라 MaxRequestWorkers라는 설정이 있는 경우도 있는데,
    이건 MaxClients, ServerLimit과 같은 의미입니다.

    StartServers, MinSpareServers, MaxSpareServers도 위에서 계산한 범위 안으로 줄이고요.
    MaxRequestsPerChild는 그대로 두어도 됩니다.

    단, 위의 내용은 PHP를 사용하는 경우에만 해당됩니다.
    자바나 node.js 등을 사용하는 서버에서는 얘기가 전혀 달라질 수 있습니다.
    그래서 자바 돌리던 분이 PHP 서버를 세팅해 놓으면 다운됩니다 ㅋㅋㅋ

  • profile profile
    오히려 반대로 해야 하는군요.
    위에 적은 것들은 예 였을 뿐인데 1024는 터무니 없는 큰수 였군요.

    하나 또 배워갑니다. 감사합니다!
  • profile profile

    문제가 있으면 일단 설정값을 늘리고 보라는 엉터리 튜토리얼이 너무 많아요.

    그것도 ± 몇 퍼센트 정도가 아니라 수십 배씩 틀린 값을 권하곤 합니다.
    검색으로 해결하려고 하면 그야말로 지뢰밭이예요. 사과맛스타 님의 잘못이 아니예요 ㅜㅜ

    프로세스 갯수, 타임아웃 등의 설정값을 늘리면 잠시 해결된 것처럼 보일 수도 있지만
    대개 설정값 변경 후 아파치를 재시작하니까 복구된 것 뿐이고...
    시간이 지나면 또다시, 오히여 더 심한 문제가 생길 가능성이 높습니다.

  • profile profile
    그렇군요.

    일반적으로 설정값을 늘려야 한다고 하고, 상식적으로도 늘려야 맞다고 생각했는데 오히려 정확하게 배운것 같습니다.
    감사합니다.
  • profile ?
    소중한 정보 감사드립니다. ^^ 즐거운 저녁 되세요..
  • profile ?
    관심과 조언 감사드립니다. 즐거운 저녁 되세요..^^
  • profile
    네임서버를 cloudflare 로 변경해보세요.
  • profile profile
    이건 어떤 효과를 보게 되나요? 저희는 오래전부터 클라우드플레어의 네임서버를 이용하고 있는데 궁금하네요.
  • profile profile

    네임서버는 어느 업체 어느 곳을 쓰든 효과는 똑같아요.
    클라우드플레어 네임서버만 이용중이라면 그냥 평범한 사용이고요, 클플 서비스(노란구름모양)까지 이용한다면 이미지 같이 정적인 파일들을 클플서버에서 캐쉬해주는 효과가 있습니다.

    클플 서비스를 사용하면, 사이트 접속 속도가 조금 느려지고, 서버 부하가 살짝 낮아지는 효과가 있죠.

  • profile profile
    질문에 대한 답변으로 클라우드플레어 네임서버 이용을 추천해 주셔서 어떤 효과로 다운되는 현상을 막아주는지 궁금해서 질문들렸습니다.
    캐시까지 사용하는 것 네임서버만 이용하는 것의 차이는 알고 있는데요.

    호스팅사나 혹은 다른 곳의 네임서버를 이용하지 않고 클라우드플레어 네임서버를 이용할때 질문의 현상이 사라질 수 있는지 해서요. 어떤 기술적 차이인지 궁금해서 질문드렸습니다.
  • profile profile

    한 페이지를 열때 1번의 php, 여러번의 image, css, js 요청이 일어납니다.
    클플을 사용하면 실제 운영서버의 image, css, js 요청이 사라지므로(정적리소스캐시) 동접처리가 좋아집니다.
    그리고 클플을 사용하면 php 요청이 중계서버를 거쳐서 오는것이라 항상 약간 느려집니다.

  • profile profile
    네임서버를 사용하라는 말씀이 아니셨군요. 저는 댓글 내용 그대로 네임서버만 클라우드플레어로 교체하면 성능차이가 나는 것으로 이해했습니다.
  • profile profile
    그냥 글 보니까 서버가 다운되고, 개발자는 아닌것 같고, 중요한 사이트도 아닌것 같고, 비용을 추가할 사이트도 아닌것 같으니
    안귀찮고 효과있는 쉬운 방법을 알려드린거죠.
  • profile ?
    정보 감사합니다. ^^
    안타깝께도...어설픈 개발자고(여러가지를 합니다. ㅎㅎ), 사이트는 클라이언트 사이트고, 비용추가가 필요하면 할수도 있습니다.
    욕먹기 딱 좋네요.
    아마 해결을 못했음 퍼포먼스 좋은 다른 서버로 옮겼을것 같네요.