メンテナンス・トラブルシュート - PHP - OPcache JIT

クラウディア 
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
 てなログが、うようよ出ておりまして、あわてて、コメントアウトして起動しなおしました。  どうしたら、いいんだろう? 追而書
ハイスピードプラン