사이트가 온라인/오프라인으로 전환되는 이유를 찾는 방법

사이트가 온라인/오프라인으로 전환되는 이유를 찾는 방법

오늘은 제가 관리하는 웹사이트가 하루 종일 온라인과 오프라인으로 전환되고 있는 것 같습니다. 문제의 원인이 무엇인지 모르므로 어디서부터 시작해야 할지에 대한 지침을 구하고 있습니다. 워드프레스 기반 사이트입니다.

그래서 제가 아는 것은 다음과 같습니다.

나는 매분마다 서버에 ping을 보내는 프로그램을 사용하고 서버가 응답하지 않을 때 이메일을 보내 사이트가 온라인인지 오프라인인지 정확히 알 수 있습니다. 사이트는 12시 28분 오후 8시부터 12시 사이, 이른 아침 12시 29분 1시쯤입니다(뉴욕시 시간대, 아래의 모든 시간은 동일한 시간대입니다).

기복 당시에는 메모리 사용량에 많은 부담이 가해졌습니다. 사이트가 온라인/오프라인으로 전환될 때 로드 평균을 확인하세요(http://screencast.com/t/BRlfXkqrbJII). 그런 다음 이 명령을 실행하여 http를 다시 시작했습니다(http://screencast.com/t/usVtYWZ2Qi) 그리고 메모리 사용량은 다음과 같이 감소합니다(http://screencast.com/t/VdTIy3bgZiQB). http를 다시 시작한 지 한 시간 후에 사이트가 오프라인/온라인으로 전환되었으므로 http를 다시 시작해도 큰 도움이 되지 않았습니다.

사이트가 오프라인/온라인으로 전환될 때 top 명령을 실행하여 다음을 얻습니다(http://screencast.com/t/zEwr7YQj3). 다음은 사이트가 가장 낮은 위치에 있을 때 수행되는 최고 명령입니다(http://screencast.com/t/eaMfha9lbT- 그래서 이것은 "정상"이라고 불릴 것입니다).

다음은 대역폭 보고서입니다(http://screencast.com/t/AS0h2CH1Gypq).

교통량이 그리 많지 않은 것 같습니다(http://screencast.com/t/s7hrWNNic1K), 하지만 내 시간을 보면 사이트가 올라가거나 내려가는 것이 이유 중 하나일 수 있습니까?

Media Temple에 dvp Nitro 패키지가 있습니다(http://mediatemple.net/webhosting/nitro/).

따라서 이 시점에서 나는 이 문제의 원인이 무엇인지, 그리고 이 문제를 정확히 찾아낼 수 있는 방법을 찾는 데 도움을 요청하고 싶습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변1

30대의 로드 평균이 높고 CPU 사용량이 100%입니다. HTTPD 프로세스 전체에서도 CPU 사용량이 꽤 높으므로 특정 불량 프로세스가 아닙니다. 기본적으로 서버는 수신 중인 동시 HTTP 요청 수를 처리할 수 없습니다.

페이지를 생성하는 데 필요한 처리량을 줄이기 위해 뭔가를 할 수 있을 수도 있습니다.

Apache 서버 로그를 검토하여 로딩이 고르지 않은 이유를 확인할 수 있습니다. 아마도 귀하는 DDOS 공격의 표적이 될 수 있습니다. 그렇다면 그 영향을 완화하기 위해 할 수 있는 일이 있습니다.

아니면 더 큰 서버가 필요합니다.


MediaTemple에 문제가 있을 수도 있습니다.트래픽이 많은 Wordpress 웹사이트를 어떻게 최적화합니까?

답변2

매분마다 서버에 ping을 보내는 프로그램을 사용합니다.

그런 다음 귀하와 웹 사이트가 있는 시스템 사이의 모든 네트워크 장치를 모니터링하게 됩니다. 실제로 실제 웹사이트를 제외한 거의 모든 것을 측정하고 있습니다. 물론 웹서버를 실행하는 컴퓨터가 핑에 응답할 수 없다면 아마도 HTTP 요청에도 응답하지 않을 것입니다.

제공된 다른 세부 정보를 살펴보면 문제를 일으키는 것은 HTTP 처리인 것 같습니다. 그러나 HTTP 처리로 인해 핑에 응답하지 못하는 경우 서버 설정이 매우 잘못된 것입니다.

DOS 공격일 수도 있지만 어딘가에 경쟁 조건이 구축될 가능성이 더 높다고 생각됩니다. HTTP 트래픽에 무슨 일이 일어나고 있나요? 몇몇 호스트로부터 활동이 폭증하고 있습니까? 응답 시간이 로드 평균보다 앞서는가 아니면 뒤처지는가?

귀하가 제공한 차트와 보고서는 약간의 도움이 되지만 여기에는 진단의 기초가 되는 정보가 거의 없습니다. 실제로는 시간 단위가 아닌 최대 분 단위로 평균 핫 요금을 확인해야 합니다. 그리고 0시간에 발생한 엄청난 급증은 어떻습니까? 내가 보기에는 이상해 보인다.

%D 로깅을 시작하고 mod-log-firstbyte를 설치/구성하여 문제가 발생한 위치를 확인할 수 있지만 PHP 자동 추가를 사용하면 이 모든 작업을 훨씬 덜 침해적으로 수행할 수 있습니다. 예를 들어 다음은 처리가 시작될 때 로그 항목을 작성합니다. 요청이 완료되면 요청 처리 중에 수행된 작업에 대한 많은 정보를 기록합니다.

<?php
   global $error_log, $start_time;
   // IIRC wordpress implement output buffering so no need to do it here.
   $error_log=@fopen('php://stdin','w');
   $start_time=microtime(true);
   @fputs($error_log, date('r') 
       . getmypid() . 
       . " started  \"" 
       . $_SERVER['REQUEST_URI'] . '"');
   @register_shutdown_function('log_complete');
   function log_complete()
   {
      global $error_log, $start_time;
      $r=getrusage();
      @fputs($error_log, date('r') 
       . getmypid() . 
       " finished " .
       memory_get_usage() . ' ' .
       microtime(true)-$start_time . ' ' .
       var_export($r, true));
   }

관련 정보