Program Tip

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

programtip 2020. 12. 27. 20:00
반응형

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


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

나는 또한 내 레이더 아래로 미끄러 진 다른 대안에 열려 있습니다.

현재 Apache 2 및 PHP 5.2가 설치된 Debian Etch에서 실행 중입니다.

[업데이트 1]

HowtoForge 설치 링크 추가

[업데이트 2]

제공된 답변과 피드백을 기반으로 내 애플리케이션에서 다음 Apache JMeter 테스트 계획을 사용하여 세 가지 구현을 모두 테스트했습니다.

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

동시 연결이 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 자체가 최고의 성능을 제공함을 증명했습니다.

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


APC는 Windows에 설치하기 쉽고 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


I have run several benchmarks with eAcclerator, APC, XCache, and Zend Optimizer (even though Zend is an optimizer, not a cache).

Benchmark Results http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Result: eAccelerator is fastest (in all tests), followed by XCache and APC. (The one in the diagram is the number of seconds to call a WordPress home page 10,000 times).

Zend Optimizer made everything slower (!).


I can't tell you for sure, but the place where I am working now is looking at APC and eAccelerator. However, this might influence you - APC will be integrated into a future release of PHP (thanks to Ed Haber for the link).


I've had good success with eAccelerator (speed improvement with no load is noticable) but XCache also seems pretty promising. You may want to run some trials with each though, your application might scale differently on each.


I've been using XCache for more than a year now with no problems at all.

I tried to switch to eAccelerator, but ended up with a bunch of segmentation faults (it's less forgiving of errors). The major benefit to eAccelerator is that it's not just an opcode cache, it's also an optimizer.

You should fully test out your application with each one of them to make sure there aren't any problems, and then I'd use apachebench to test it under load.


These add-ons have historically introduced lots of weird bugs to track down. These bugs can cause inconsistent behaviour which can't be diagnosed easily because it depends on the state of the cache.

So I'd say:

  1. Don't use any of the above. Buy more tin instead, it's a more reliable (i.e. error-free) way of increasing performance. OR
  2. Go with whichever of the above is the most robust, having tested the pants off your application.

But I'd say:

  1. Make sure it's REALLY PHP code parsing that is causing your performance problems by profiling your application. I think it's extremely likely that it isn't - in which case you'd be wasting your time (actually, using your time negatively productively) by installing any of them.

참조 URL : https://stackoverflow.com/questions/28716/which-php-opcode-cacher-should-i-use-to-improve-performance

반응형