- 1. 概要
- 2. 設定
1. 概要
「OPcache JIT」とは、「OPcache」の機能をさらに強化したもののようです。
本ページは、下記のサイトを参考にさせていただきました。
「PHP: OPcache - Manual」
「【PHP8.0】PHP で JIT が使えるようになる」
「マジカミは PHP8 で速くなるか」
公式ドキュメントに関しては、「OPcache」内に記述されています。
だいたい、わたしの理解したところでは・・・。
「OPcache」自体の仕組みは、「.php」のソースコードをキャッシュしておいて、それを使うということになっているので、結局、インタプリタを実行している。
「JIT」は、さらにキャッシュして、実行する際に、実行するコードを、ネイティブコードに変えたものをキャッシュする・・・と。
一度、キャッシュすると、次回からは、いきなりネイティブコードで実行するので、早くなるぞ・・・と。
「JIT」の実装は、「PHP 8.0.0」からだそうで・・・。
これは、「PHP 8.0」を使用する甲斐があるってもんです。
2. 設定
どうも「opcache.jit_buffer_size」というのが、ミソなようで。
公式ドキュメントには、下記のように書かれています。
「opcache.jit_buffer_size」
コンパイル済みの JIT コードを保存する共有メモリの合計サイズ。 0 を指定すると、JIT が無効になります。
int を使用する際、 その値はバイト単位で測られます。 この FAQ に記載された 短縮表記を使用することも可能です。
何も設定していなければ、デフォルト値として、0 が設定されているようで・・・つまり、「JIT」は無効になっているということですわな・・・。
「php.ini」を編集します。
[opcache]
のセクションに追加。
opcache.jit_buffer_size=32M
設定値は、参考サイトのものを、まんま、パクリです。
他の値は、デフォルトがそのまま、参考サイトと同じ値なので、変更しません。
変更後、「apache」を「configtest」して「restart」します。
「Apache Bench」で、設定前後を比べてみましたが、あまり変わりませんな。
これは、当サイトのコンテンツ自体の問題なのだなぁ・・・。
これ、上記の設定は、あきまへん。パフォーマンスがあがらないどころじゃない。
「apache」のプロセスが、こけます。
ブラウザでアクセスできなくなって、「/var/log/messages」を見ると
1037 Oct 28 18:06:22 ns kernel: pid 62136 (httpd), jid 0, uid 80: exited on signal 11
1038 Oct 28 18:06:23 ns kernel: pid 61966 (httpd), jid 0, uid 80: exited on signal 11
1039 Oct 28 18:06:39 ns kernel: pid 62059 (httpd), jid 0, uid 80: exited on signal 11
1040 Oct 28 18:06:40 ns kernel: pid 62014 (httpd), jid 0, uid 80: exited on signal 11
1041 Oct 28 18:06:41 ns kernel: pid 62119 (httpd), jid 0, uid 80: exited on signal 11
1042 Oct 28 18:06:41 ns kernel: pid 61945 (httpd), jid 0, uid 80: exited on signal 11
てなログが、うようよ出ておりまして、あわてて、コメントアウトして起動しなおしました。
どうしたら、いいんだろう? 追而書
|