OPcache

提供:MoodleDocs
移動先:案内検索

標準のOPcacheエクステンションを強くお勧めします。Moodle 2.6以降、PHP開発者によって公式にサポートされた唯一のソリューションです。利点はパフォーマンスの向上およびメモリ使用量の大幅な減少です。しかし、opcodeキャッシュ拡張機能 (OPcache、eAcceleratorおよびAPCを含む) は、suPHP (WHM / cPanel Linuxサーバのデフォルト) などの一般的な高セキュリティPHPハンドラを使用するよう設定されたサーバと互換性がありません。

Opcache error.png

インストール

OPcache 拡張モジュールは、PHP 5.5 以降の一部として配布されています。PECL が提供する古いバージョンの PHP 安定版でも、ZendOPcache という名前で配布されています。拡張モジュールがロードされ有効になっているかどうかを調べるには、 the PHP info pageZend OPcache という見出しを探します。

Linux、macOS、その他Unix系プラットフォーム

特定のパッケージをインストールする必要があるかもしれません。例えば、CentOS、Fedora、Red Hatの場合、dnf install php-opcacheとします。必要に応じて、php.ini に以下を追加してください (パッケージインストーラが自動的に行う場合もあります): zend_extension=/full/path/to/opcache.so

Microsoft Windows

拡張モジュール php_opcache.dllWindows用のPHPバイナリダウンロードext フォルダに含まれています。 これを有効にするには、以下をphp.ini に追加します:

zend_extension=php_opcache.dll

その後、php.iniの残りの [opcache] 構成の設定を確認してください。

構成

php.ini の設定:

[opcache] opcache.enable = 1 opcache.memory_consumption = 128 opcache.max_accelerated_files = 10000 opcache.revalidate_freq = 60

Required for Moodle

opcache.use_cwd = 1 opcache.validate_timestamps = 1 opcache.save_comments = 1 opcache.enable_file_override = 0

If something does not work in Moodle
opcache.revalidate_path = 1 ; May fix problems with include paths
opcache.mmap_base = 0x20000000 ; (Windows only) fix OPcache crashes with event id 487
Experimental for Moodle 2.6 and later
opcache.fast_shutdown = 1
opcache.enable_cli = 1 ; Speeds up CLI cron
opcache.load_comments = 0 ; May lower memory use, might not be compatible with add-ons and other apps.

memory_consumption

PHPのOPCache拡張機能レビュー から。

  • メモリセグメントのサイズは、opcache.memory_consumptionのINI設定(Megabytes)を使って知ることができます。サイズを大きくして、スペースを与えることをためらってはいけません。共有メモリ領域を使い切ってはいけません。使い切ると、プロセスがロックされてしまいます。
  • 共有メモリセグメントのサイズは必要に応じて決めてください。PHPプロセス専用の本番サーバでは、 PHPのためだけに数十ギガバイトのメモリを搭載することがあることを忘れないでください。1Gb (またはそれ以上) の共有メモリセグメントを持つことは珍しいことではありませんし、それはあなたのニーズにもよります。しかし、最新のアプリケーションスタック、つまりフレームワークを使用し、依存関係が多い場合などは、最低でも1Gbの共有メモリを使用する必要があります。

そのことを念頭に置いて、opcache.memory_consumptionを満杯にならない程度に高い値に設定し(RAM使用量が許す限り)、その値を最適なサイズに調整するためにOPCacheを監視してください。標準的なMoodle 3.6のPHPファイルの合計サイズはほぼ90MBであるため、この値をそれ以上に設定することは良いアイデアとなりえます。プラグインのPHPファイルおよびMoodleDataフォルダ (言語パックファイル...) もカウントされるため、これらの値は各インストールで異なる可能性があることを考慮してください。あなたが複数のMoodleインスタンスを持っている場合、その値にインスタンス数を掛けてください。

ヒント: Linuxの場合、このコマンドでフォルダのPHPファイルの総サイズを知ることができます: find ./ -type f -name "*.php" -printf "%s\n" | gawk -M '{t+=$1}END{print t}' | numfmt --to=iec

max_accelerated_files

php.net max-accelerated-filesから。

  • OPcacheハッシュ・テーブルのキー (およびスクリプト) の最大数です。実際に使用される値は、素数 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } のうち設定値以上の最初の数です。最小値は200です。最大値は PHP < 5.5.6 では 100000、それ以降のバージョンでは 1000000 です。

Moodle 3.6には約10,000のphpファイルが含まれているため、opcache.max_accelerated_filesを10000に設定して対応することを上記の通り推奨します (実際には上記の説明に従って、16229が使用されます)。あなたが複数のMoodleインスタンスを持っている場合、この値をインスタンス数で掛け合わせる必要があります。

もし、多くのプラグインがインストールされており、PHPファイルの合計が16229を超える場合は、max_accelerated_filesの次に適切な値を使用する必要があります。 ヒント: Linuxを使用している場合、このコマンドを使用してあなたのMoodleのPHPファイルの合計を知ることができます: find ./ -type f | grep -E ".*\.php$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq -c | sort -n

Opcache管理プラグイン

Opcache management message.png

Moodleサイト管理にPHP Opcache管理GUIを追加します。Opcache management - Moodleプラグイン、PHP OpcacheをリセットするCLIツール、PHP OpcacheのNagiosチェックの追加インストールを検討してもよいでしょう。

Opcache management status.png

関連項目

フォーラムディスカッション: