PHP 7.4에서 opcache 사전로드를 어떻게 활성화합니까?


9

PHP 7.4를 사용하여 프로덕션 서버에서 opcache 프리로드 ( RFC ) 를 활성화하고 싶습니다 . Symfony 사용 하고 있지만 모든 PHP에 적용됩니다.


1
reddit.com/r/PHP/comments/e8pgzi/… 가 그 사용 계획에 얼마나 영향을 미치는지 확실하지 않습니다 .
나이젤 렌


1
이 기사를 확인 하십시오 . 또한 나이젤이 게시 한 버그를 읽으십시오. 당분간은 매우 중요합니다.
Jeto December

답변:


4

우선 다음을 추가해야합니다.

opcache.preload=/path/to/project/preload.php

너의 ~에게 php.ini

그런 다음 PHP 스크립트 opcache_compile_file($file);에서 미리로드하려는 각 파일을 전달해야합니다 .


4

블로그 게시물 에 따르면 이것은 사소한 것으로 보입니다. 4.4 이후 Symfony는 다음과 같이 사전로드 스크립트를 생성합니다 php.ini.

opcache.preload=/path/to/project/var/cache/prod/App_KernelProdContainer.preload.php

로컬 Docker 환경에서 몇 가지 테스트를 수행했으며 다음과 같이 진행되었습니다.

OPcache가없는 PHP 7.3 (현재)

Requests per second:    8.75 [#/sec] (mean)
Time per request:       114.402 [ms] (mean)

OPcache없는 PHP 7.4

Requests per second:    11.44 [#/sec] (mean)
Time per request:       87.417 [ms] (mean)

사전로드없이 OPcache를 사용하는 PHP 7.4 (Apache + modphp)

Requests per second:    30.25 [#/sec] (mean)
Time per request:       33.053 [ms]

사전로드없이 OPcache가 포함 된 PHP 7.4 (nginx + php fpm)

Requests per second:    40.00 [#/sec] (mean)

불행히도 사전로드를 활성화 할 수 없었습니다.

double free or corruption (!prev)
child pid 17 exit signal Aborted (6), possible coredump (…)

이 기능은 WIP 처럼 보입니다 . 이 사전로드 기능을 사용할 수있을 때이 답변을 다시 사용할 것입니다. 전반적으로 PHP에서로 업그레이드하여 성능을 + 30 % 향상 시켰 7.3습니다 7.4.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.