>백엔드 개발 >PHP 튜토리얼 >PHP 가속 eAccelerator, Xcache, APC 및 Zend Optimizer 정보

PHP 가속 eAccelerator, Xcache, APC 및 Zend Optimizer 정보

WBOY
WBOY원래의
2016-08-08 09:30:551104검색

이전에는 Gao Pangzi의 책에서 이렇게 가르치기 때문에 Zend Optimizer만 주목했는데, 이상한 회사에서 PHP 가속기/캐시를 몇 개나 알고 있는지 묻는 면접 질문을 받고 깜짝 놀랐습니다. .2.x는 Zend Optimizer만 사용했으며 암호화된 PHP 프로그램은 Zend Optimizer에서만 실행될 수 있습니다. 그러나 Zend Optimizer는 eAccelerator, Xcache 및 APC는 물론 php5.3.x 이상도 지원할 수 없습니다. Zend Guard 로더는 php5.3.x 이상과 최신 php5.5.x 버전을 지원할 수 있으며, 공식 웹사이트에는 Zend Guard가 내장되어 있다고 나와 있으므로 phper는 가속기에 신경을 쓰지 말아야 합니다. 이제 이런 문제가 발생했기 때문에 인터넷에서 내용을 요약했습니다. 네티즌들은 그냥 읽을 수 있고 테스트할 필요가 없습니다.

어떤 것을 설치할까요? 성능에 어떤 영향을 미치나요? 테스트해보는 시간을 가져보세요.

다른 곳에서 본 모습입니다.

Zend Optimizer가 필요하지 않은 프로그램 환경에서는 pecl-APC를 사용하는 것이 좋습니다(Zend Optimizer와 호환되지 않습니다).
요약:
1. pecl-APC는 뛰어난 호환성과 성능을 갖춘 PHP 버퍼링(가속)을 위한 첫 번째 선택입니다.
2. PHP 환경에 Zend Optimizer가 필요한 경우 eAccelerator를 설치하고 Zend Optimizer의 압축 수준을 0으로 조정하세요.

zend 옵티마이저는 PHP 코드를 튜닝할 수 있는 코드 최적화 모듈입니다. 구현 원리는 런타임 컴파일러(Run-Time Compiler)에서 생성된 코드를 최종 실행하기 전에 최적화하는 것입니다. 코드 성능은 40%에서 100%까지 향상될 수 있습니다. 이런 관점에서 보면 강력한 캐싱 기능이 없어야 합니다. 소스 코드를 읽어보지 않았기 때문에 캐시가 있는지, 캐시가 무엇인지 알 수 없습니다. 품질은.
eAccelerator는 컴파일된 PHP 코드를 공유 메모리에 캐시하는 모듈입니다. 공유 메모리에 접근하면 컴파일된 코드를 직접 얻어서 실행할 수 있어 PHP의 실행 효율성이 크게 향상됩니다. 동시에 eAccelerator는 데이터를 파일로 캐시할 수도 있습니다. 이 부분은 파일에 대한 작업이기 때문에 대부분의 파일 캐시에 있어서 원리도 비슷하고 성능도 비슷하다고 생각합니다.
APC는 원칙적으로 eAccelerator와 유사하므로 큰 차이는 없습니다. 매개변수를 수정하여 세부적으로 테스트하지 않으면 두 가지의 장점과 단점을 확인할 수 없습니다. 그러니 하나만 고르세요.

세 가지 무료 PHP 가속기 비교: APC, eAccelerator 및 XCache

1. PHP 가속기 소개

PHP 가속기는 PHP 실행 효율성을 높이기 위해 PHP opcode를 캐시하는 도구로, 나중에 실행 시 PHP를 구문 분석하고 변환할 필요 없이 PHP opcode를 직접 호출할 수 있어 속도가 크게 향상됩니다.

Apache에서 mod_php를 사용한 요청 및 응답 실행 프로세스:

1. Apache가 요청을 받습니다.
2. Apache는 요청을 mod_php로 전달합니다.
3. mod_php는 디스크 파일을 찾아 메모리에 로드합니다.
4. mod_php는 소스 코드를 opcode 트리로 컴파일합니다.
5. mod_php는 opcode 트리를 실행합니다.

PHP 가속기는 네 번째 단계에 해당합니다. 트래픽이 많은 웹사이트에서는 많은 수의 컴파일이 빠르게 실행되지 않는 경우가 많기 때문에 PHP가 모든 요청에 ​​대해 반복적으로 PHP 코드를 컴파일하는 것을 방지하는 것입니다. 따라서 PHP를 반복적으로 컴파일하면 속도와 서버 부하 모두에 영향을 미치는 병목 현상이 발생합니다. 이 문제를 해결하기 위해 PHP 가속기가 탄생했습니다.

2. PHP 가속기 설치 및 구성

1. APC 설치 및 구성

APC의 전체 이름은 Alternative PHP Cache입니다. 공식 번역은 "Optional PHP Cache"입니다. Facebook에서 사용하는 것 같습니다(우분투 환경). 🎜>$wget http://pecl.php.net/get/APC-3.0.19.tgz
$tar xvzf APC-3.0.19.tgz
$cd APC-3.0.19/APC-3.0 .19
$/usr/local/php/bin/phpize
$./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/local/php/bin/php -config
$make
$sudo make install

다음으로 APC를 구성합니다. PECL 확장 경로가 변경되었으므로 컴파일된 파일을 이동해야 합니다.

$sudo mv /usr/local/php/lib/php/extensions/no-debug -non-zts -20060613/apc.so /usr/local/php/lib/php/extensions/PECL

그런 다음 구성을 위해 php.ini 파일을 편집합니다. php.ini에 다음 코드를 추가하세요.

extension_dir = "/usr/local/php/lib/php/extensions/PECL"
extension = apc.so
APC
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = 켜기

이렇게 하면 Apache를 다시 시작하면 phpinfo() 정보에 표시됩니다.

2. eAccelerator 설치 및 구성

eAccelerator의 전신은 사실 Truck-mmcache입니다. truk-mmcache를 개발한 사람이 Zend에서 영입되었기 때문에 eAccelerator를 개발한 사람은 truk-mmcache의 일부 기능을 계승하여 eAccelerator 가속기를 설계했습니다. 다음과 같이 설치하세요:
$wget http://jaist.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5.tar.bz2
$tar -jxf eaccelerator-0.9.5.tar.bz2
$cd eaccelerator-0.9.5
$/usr/local/php/bin/phpize
$./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php / bin/php-config
$make
$sudo make install
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so /usr/local/php/lib/php/extensions/PECL

php.ini 파일에 다음 코드를 추가하세요
extension = eaccelerator.so
; eAccelerator
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = "/tmp/eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.prune_기간 = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"

캐시 디렉토리 생성 및 아파치 재시작

$sudo mkdir /tmp/eaccelerator
$sudo chmod 777 /tmp/eaccelerator
$sudo /usr/local/apache/apachectl 재시작

phpinfo()에서 설치 성공 여부를 확인하세요.

3. XCache 설치 및 구성

XCache는 중국 사람들이 개발한 것인데, 초보자임에도 불구하고 XCache는 속도와 성능면에서 훌륭합니다. 지금 맛보자!

$wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
$tar xvzf xcache-1.2.2.tar.gz
$cd xcache-1.2.2
$/usr/local/php/bin/phpize
$./configure –enable-xcache –enable-xcache-coverager –with-php-config=/usr/local/ php/php-config
$make
$sudo make install
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so / usr/local/php/lib/php/extensions/PECL

php.ini에 구성 정보 추가:

extension = xcache.so
; xcache
xcache.admin.user = "admin"
xcache.admin.pass = "(실행) echo '(비밀번호)'|md5sum( ciphertext) "
;
xcache.size = 24M
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8k
xcache.ttl = 0
xcache.gc_interval = 0

xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8k
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = 꺼짐
xcache.readonly_protection = 켜짐
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = 켜짐
xcache.stat = 켜짐
xcache.optimizer = 꺼짐
;
xcache.coverager = 켜짐
xcache.coveragedump_directory = ""

캐시 디렉토리 생성 및 아파치 재시작

$sudo mkdir /tmp/xcache
$sudo chmod 777 /tmp/xcache
$sudo /usr/local/apache/bin/apachectl 재시작

phpinfo() 정보를 확인하러 가보세요!

3. PHP 가속기 테스트

1. 테스트 환경

하드웨어: AMD Athlon 64 X2 듀얼 코어 프로세서 4400+ @ 2.2GHz CPU, 2GB RAM.

소프트웨어: Linux Ubuntu 서버 Gutsy 7.10, Apache 2.2.4, MySQL 5.0.45 및 PHP 5.2.3

테스트 명령: ab -c5 -n3000 http://example.com/ (Apache Benchmark(ab) 도구를 사용하고 있으며 동시 연결 요청 수는 5,3000개입니다.)

2. 테스트 결과

가속기 없음:

문서 경로: /
문서 길이: 21757바이트
동시성 수준: 5
테스트 소요 시간: 288.255212초
완료 요청: 3000
실패한 요청: 0
쓰기 오류: 0
총 전송량: 66777000바이트
전송된 HTML: 65271000바이트
초당 요청 수: 10.41 [#/초](평균)
요청당 시간: 480.425[ms](평균)
요청당 시간: 96.085[ms](모든 동시 요청에 대한 평균)
전송 속도: 226.23[KB/초] 수신
연결 시간(ms)
최소 평균[+/-sd] 중앙값 최대
연결: 0 0 0.5 0 19
처리 중: 181 479 186.0 444 1822
대기: 166 461 184.7 427 1708
총계: 181 479 186.0 444
처리된 요청의 비율 특정 시간 이내(ms)
50% 444
66% 525
75% 577
80% 619
90% 732
95% 819
98% 946
99% 1012
100% 1822(가장 긴 요청)

APC 가속기:

문서 경로: /
문서 길이: 21757바이트
동시성 수준: 5
테스트 소요 시간: 98.530068초
완료 요청: 3000
실패한 요청: 0
쓰기 오류: 0
총 전송량: 66777000바이트
전송된 HTML: 65271000바이트
초당 요청 수: 30.45 [#/초](평균)
요청당 시간: 164.217[ms](평균)
요청당 시간: 32.843[ms](모든 동시 요청에 대한 평균)
전송 속도: 661.84[KB/초] 수신
연결 시간(ms)
최소 평균[+/-sd] 중앙값 최대
연결: 0 0 0.0 0 2
처리 중: 58 163 71.2 155 2452
대기: 53 158 69.6 150 2329
총계: 58 163 71.2 155 2452
퍼센트 요청이 처리된 기간 특정 시간 이내(ms)
50% 155
66% 178
75% 193
80% 204
90% 235
95% 258
98% 285
99% 302
100% 2452(가장 긴 요청)

eAccelerator加速器:

문서 경로: /
문서 길이: 21757바이트
동시성 수준: 5
테스트 소요 시간: 95.983986초
완료 요청: 3000
실패한 요청: 0
쓰기 오류: 0
총 전송량: 66777000바이트
전송된 HTML: 65271000바이트
초당 요청 수: 31.26[#/초](평균)
요청당 시간: 159.973[ms](평균)
요청당 시간: 31.995[ms](모든 동시 요청에 대한 평균)
전송 속도: 679.39[KB/초] 수신
연결 시간(ms)
최소 평균[+/-sd] 중앙값 최대
연결: 0 0 0.1 0 3
처리 중: 57 159 91.3 148 3830
대기: 50 152 89.8 142 3704
총계: 57 159 91.3 148 3830
퍼센트 요청이 처리된 기간 특정 시간 이내(ms)
50% 148
66% 174
75% 193
80% 205
90% 239
95% 263
98% 289
99% 309
100% 3830(가장 긴 요청)

XCache加速器:

문서 경로: /
문서 길이: 21757바이트
동시성 수준: 5
테스트 소요 시간: 99.76300초
요청 완료: 3000
실패한 요청: 0
쓰기 오류: 0
총 전송량: 66777000바이트
전송된 HTML: 65271000바이트
초당 요청 수: 30.28[#/초](평균)
요청당 시간: 165.127[ms](평균)
요청당 시간: 33.025[ms](모든 동시 요청에 대한 평균)
전송 속도: 658.19[KB/초] 수신
연결 시간(ms)
최소 평균[+/-sd] 중앙값 최대
연결: 0 0 0.0 0 2
처리 중: 59 164 83.4 155 3367
대기: 52 156 66.4 148 1802
총계: 59 164 83.4 155 3367
퍼센트 요청이 처리된 기간 특정 시간 이내(ms)
50% 155
66% 178
75% 196
80% 206
90% 237
95% 263
98% 287
99% 305
100% 3367(가장 긴 요청)

3、结果摘要

  请求时间(秒) 单次请求时间(毫秒) 最大内存占用(MB) 最小内存占用(MB)
None 10.41 96.08 24 24
APC 30.45 32.84 21 21
eAccelerator 31.26 31.99 23 18
XCache 30.28 33.02 29 19

4、PHP加速器比较结果总结

     1、통합 방식으로 eAccelerator를 사용할 수 있습니다.

     2、일반적으로 过测试得使用加速器比无加速器에서 请求时间快了3倍左右。

     3、일반적으로 XCache是更新最快的, 这也说明最有发观察,

        以上是总结结果,你也许会问我到底用那个加速器好呢?我只能告诉你,首先,用一定比不用好,其次每个加速器还有一些可以调优的参数,所以要根据你的系统环 境而后, 我个人觉得你可以详细研究下eAccelerator and XCache, 这两款潜power还是很大 , 最后我从比较专业 tive测试网站搞了一张结果图:

원문链接地址:http://www.vpser.net/opt/apc-eaccelerator-xcache.html

以上就介绍了关于PHP加速eAccelerator, Xcache, APC와 Zend Optimizer, 包括了方face的内容,希望对PHP教程有兴趣的朋友有所帮助。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.