PHP 7.4でopcacheプリロードを有効にするにはどうすればよいですか?


9

PHP 7.4を使用している運用サーバーでopcache preloadingRFC)を有効にしたいのですが。私は使っています Symfonyいますが、これはすべてのPHPに当てはまります。


1
reddit.com/r/PHP/comments/e8pgzi/…がどのようにそれを使用するための計画に影響するかわかりません。
Nigel Ren


1
この記事を確認してください。当面は非常に重要と思われるため、Nigelが投稿したバグもお読みください。
Jeto

回答:


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)

PHP 7.4、OPcacheあり、プリロードなし(Apache + modphp)

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

PHP 7.4、OPcacheあり、プリロードなし(nginx + php fpm)

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

残念ながら、プリロードを有効にすることができませんでした:(Apache + ModとNginx + FPMの両方で)次のエラーが発生しました:

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

この機能はWIPのように見えます。このプリロード機能を使用できるようになったときに、この回答を再検証します。全体として、PHP 7.3からにアップグレードしただけで、パフォーマンスが+ 30%向上しました7.4

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.