이전에는 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
$sudo mv /usr/local/php/lib/php/extensions/no-debug -non-zts -20060613/apc.so /usr/local/php/lib/php/extensions/PECL
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 = 켜기
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教程有兴趣的朋友有所帮助。