2010-12-06 3 views
11

프로덕션 서버에서 코드를 프로파일 링하고 모범 사례 조언을 원했던 아이디어를 구현하려고합니다. 당연히 추가 된 오버 헤드로 인해 모든 요청을 프로파일 링하는 것은 나쁜 생각이므로 요청 당 프로파일 러를 임의로 호출하는 몇 가지 기술을 조사했습니다. 10,000 건의 요청 당 1 개의 프로파일과 같은 것.프로덕션 프로필 코드

나는 페이스 북의 XHProf Profiler으로 이러한 작업을 수행 할 수있는 방법이 있지만 xdebug를 사용하여 유사한 솔루션을 기대하고있었습니다.

  1. 도 좋습니다 기능의 종류 :

    그래서 내 질문이 있습니다 (가정 Xdebug는이 프로파일입니다)? 실제 환경 데이터를 실제 환경에서 가져오고 싶지만 오버 헤드로 인해 사용자 환경이 파괴되는 것을 의미하지는 않습니다.

  2. 프로덕션 환경에 xdebug를 설치하면 공격자/착취 자에게 서버가 열리지 않습니다 (디버거를 사용할 수 없다고 가정 할 때)? 이 유형의 설치를위한 보일러 - 플레이트 구성이 있습니까?
  3. 적절한 샘플 크기로 프로파일 러를 트리거하는 가장 좋은 방법은 무엇입니까?

기타 통찰력이 있으면 크게 감사하겠습니다.

답변

9

바퀴를 재발 명하지 마십시오. XHProf Profiler는 프로덕션 환경에서 코드를 프로파일 링 할 때 최고의 도구입니다.

xdebug에서 프로파일 링을 사용하기위한 옵션은 xdebug.profiler_enable = 1을 통해 항상 php.ini 파일 또는 .htaccess 파일을 통해 프로파일 링을 사용하거나 xdebug.profiler_enable_trigger = 1을 통해 선택적으로 프로파일 링을 켜는 것으로 제한됩니다. 후자의 경우 XDEBUG_PROFILE GET 또는 POST 매개 변수 세트가 있거나 XDEBUG_PROFILE 이름의 쿠키를 보내야합니다. 즉, 누군가 장난 스럽다면 GET 매개 변수를 여러 요청에 추가하면 서버 속도가 느려질 수 있습니다.

상대적으로 무작위 인 요청 샘플을 프로파일 할 수있는 유일한 옵션은 cron 스크립트에서 .htaccess 파일을 적절한 디렉토리에 주기적으로 배치 한 다음 디렉토리 밖으로 이동시키는 것입니다. 여전히 바람직하지 않습니다.

XHProf와 함께 가기로 결정한 경우 XHGUI을 살펴보십시오. 제안 요한

http://phpadvent.org/2010/profiling-with-xhgui-by-paul-reinheimer

+0

감사합니다. 나는 xhprof에 대해 더 많이 읽고 더 많이 고려할 것이다. –

관련 문제