성능을 향상 시키려면 어떤 PHP opcode cacher를 사용해야합니까?[닫은]

StackOverflow https://stackoverflow.com/questions/28716

  •  09-06-2019
  •  | 
  •  

문제

고부하 상태에서 성능을 향상 시키려고 노력하고 있으며 opcode 캐싱을 구현하고 싶습니다. 다음 중 어떤 것을 사용해야합니까?

  • APC- 설치 가이드
  • eAccelerator- 설치 가이드
  • XCache- 설치 가이드

    저는 또한 제 레이더 아래에있는 다른 대안에도 열려 있습니다.

    현재 Apache 2 및 PHP 5.2를 사용하는 Debian Etch에서 실행 중입니다.

    [업데이트 1]

    HowtoForge 설치 링크 추가

    [업데이트 2]

    주어진 답변과 피드백을 바탕으로 애플리케이션에서 다음 Apache JMeter 테스트 계획을 사용하여 3 가지 구현을 모두 테스트했습니다.

    • 로그인
    • 홈페이지 액세스

      동시 연결이 50 개인 경우 결과는 다음과 같습니다.

      Opcode 캐싱 없음
      Opcode 캐싱 없음

      APC
      APC

      eAccelerator
      eAccelerator

      XCache
      XCache

      실적 그래프 (작을수록 좋음)
      성능 그래프

      위의 결과에서 eAccelerator는 APC 및 XCache에 비해 성능이 약간 우수합니다. 그러나 위의 데이터에서 가장 중요한 것은 모든 종류의 opcode 캐싱이 성능을 크게 향상 시킨다는 것입니다.

      다음 두 가지 이유로 APC를 사용하기로 결정했습니다.

      • 패키지는 공식 데비안 저장소에서 사용 가능합니다.
      • 더 많은 기능의 제어판

        내 경험을 요약하면 :

        설치 용이성 : APC> eAccelerator> XCache
        성능 : eAccelerator> APC, XCache
        제어판 : APC> XCache> eAccelerator

도움이 되었습니까?

해결책

답은 실행중인 웹 애플리케이션의 유형에 따라 다를 수 있습니다.2 년 전에 직접 결정을 내려야했고 Zend Optimizer와 eAccelerator 중에서 결정할 수 없었습니다.

결정을 내리기 위해 ab (apache bench)를 사용하여 서버를 테스트하고 세 가지 조합 (zend, eaccelerator, 둘 다 실행 중)을 테스트하고 eAccelerator 자체가 최고의 성능을 제공함을 증명했습니다.

시간이 여유가 있다면 비슷한 테스트를 직접 수행하고 결과에 따라 결정을 내리는 것이 좋습니다.

다른 팁

Windows에 설치하기 쉽기 때문에 APC를 사용하고 WAMP에서 개발 중입니다.

APC를 PHP6에 통합하는 방법은 다음과 같습니다. http : //www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc

그리고 여기에 Debian Etch에 APC를 설치하는 방법이 있습니다. http://www.howtoforge.com/apc-php5-apache2-debian-etch

eAcclerator, APC, XCache 및 Zend Optimizer를 사용한 벤치 마크 (Zend는 캐시가 아니라 최적화 프로그램 임에도 불구하고).

벤치 마크 결과 http : //blogs.interdose.com / dominik / wp-content / uploads / 2008 / 04 / opcode_wordpress.png

결과 : eAccelerator가 가장 빠르며 (모든 테스트에서) XCache 및 APC가 뒤를이었습니다.(다이어그램의 값은 WordPress 홈페이지를 10,000 번 호출하는 데 걸리는 시간 (초)입니다.)

Zend Optimizer는 모든 것을 느리게 만들었습니다 (!).

확실히 말할 수는 없지만 지금 제가 일하고있는 곳은 APC와 eAccelerator입니다.그러나 이것은 당신에게 영향을 미칠 수 있습니다- APC는 향후 PHP 릴리스에 통합됩니다 (링크에 대한 Ed Haber에게 감사).

저는 eAccelerator로 좋은 성공을 거두었지만 (부하없이 속도 향상이 눈에 띄게) XCache도 꽤 유망 해 보입니다.각각에 대해 몇 가지 평가판을 실행하고 싶을 수 있지만 애플리케이션은 각각 다르게 확장 될 수 있습니다.

XCache를 1 년 넘게 사용해 왔는데 전혀 문제가 없습니다.

eAccelerator로 전환하려고했지만 많은 세분화 오류가 발생했습니다 (오류를 덜 용서합니다).eAccelerator의 주요 이점은 단순한 opcode 캐시가 아니라 최적화 프로그램이라는 것입니다.

각 애플리케이션으로 애플리케이션을 완전히 테스트하여 문제가 없는지 확인한 다음 apachebench를 사용하여 부하 상태에서 테스트합니다.

이러한 부가 기능은 역사적으로 추적해야 할 이상한 버그를 많이 도입했습니다.이러한 버그는 캐시 상태에 따라 달라지기 때문에 쉽게 진단 할 수없는 일관성없는 동작을 유발할 수 있습니다.

그러므로 다음과 같이 말합니다.

  1. 위의 어떤 것도 사용하지 마세요.대신 더 많은 주석을 구입하면 성능을 높이는 더 안정적인 (예 : 오류없는) 방법입니다. 또는
  2. 애플리케이션에서 바지를 테스트 한 후 가장 강력한 위의 제품을 사용하세요.

    하지만 다음과 같이 말합니다.

    1. 애플리케이션을 프로파일 링하여 성능 문제를 일으키는 것이 정말 PHP 코드 파싱인지 확인합니다.그렇지 않을 가능성이 매우 높다고 생각합니다. 그럴 경우 이들 중 하나를 설치하여 시간을 낭비하게 될 것입니다 (실제로는 시간을 생산적으로 부정적으로 사용).
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top