Kusanagi9におけるopcacheの動作について
TOP › Forums › バグ報告と提案(Requests and Feedback) › Kusanagi9におけるopcacheの動作について
Kusanagi9におけるopcacheの動作について
- This topic has 1 reply, 2 voices, and was last updated 2 years, 3 months ago by cloudy.
-
AuthorPosts
-
-
2022年8月19日 at 19:47 #1011
さくらのクラウドにおけるKusanagi9について、PHP-FPMプロセスがSegmentation Faultでダウンし、
子プロセスが再起動するモノの、引き続きSegmentation Faultとなりアクセスがある度に再起動を繰り返す状態になった上で、
あるタイミングで親プロセスが再起動するという状況になりました。最終的にopcacheを切る様に設定を変えたところエラーが起こらなくなった次第です。
Kusanagiの標準ではオンになっている(そしてその状態のままでエラーが発生していた)ということで、切ってしまって問題ないのかが不安なところがありますのでご相談させて頂きます。—
1回Segmentation Faultが発生すると、親プロセスの再起動までは502エラーとなり、
`
[19-Aug-2022 03:34:42] WARNING: [pool www] child 101694 exited on signal 11 (SIGSEGV – core dumped) after 36.740704 seconds from start
[19-Aug-2022 03:34:42] NOTICE: [pool www] child 101716 started
`
のようなエラーを連発します。
親プロセスの再起動時には`
[19-Aug-2022 03:39:06] NOTICE: Terminating …
[19-Aug-2022 03:39:06] NOTICE: exiting, bye-bye!
[19-Aug-2022 03:39:06] NOTICE: fpm is running, pid 101969
[19-Aug-2022 03:39:06] NOTICE: ready to handle connections
[19-Aug-2022 03:43:45] NOTICE: Terminating …
[19-Aug-2022 03:43:45] NOTICE: exiting, bye-bye!
[19-Aug-2022 03:43:45] NOTICE: fpm is running, pid 102065
[19-Aug-2022 03:43:45] NOTICE: ready to handle connections
`
のような形で再起動する次第です。
Coredumpを取るようにした結果、opcacheが原因らしいことが判明し、使わないようにphp.iniなどを書き換えました。
気になっているのはこれ自体がKusanagiの動作に影響しないのかと言う点と、エラーが出ている状態がデフォルトで大丈夫だったのかと言う点です。最終的にはPHP側の問題として
https://github.com/php/php-src/issues/8149
にたどり着きます。現段階でOpenなIssueであることを踏まえて、対応策はないのかな?と思いつつ、
意図的にKusanagiでオンになっている機能だと問題だなと思っている次第です。似たような内容で
こちらのトピックにも行き当たりましたが、特段問題はありませんでした。以下現在の
kusanagi status
です。`
KUSANAGI Version 9.2.6-2.el8
sakura*** (active) nginx : nginx123 ***
* nginx.service – The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-08-19 17:00:10 JST; 2h 3min ago*** (inactive) httpd : httpd ***
* httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)*** (active) php : php80
kusanagi-php80-debuginfo.x86_64 8.0.22-2.el8 @kusanagi
kusanagi-php80-debugsource.x86_64 8.0.22-2.el8 @kusanagi ***
* php-fpm.service – The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-08-19 17:02:45 JST; 2h 0min ago*** (active) mariadb : mariadb10.5 ***
* mariadb.service – MariaDB 10.5.17 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-08-19 16:49:58 JST; 2h 13min ago*** (inactive) psql : ***
*** (inactive) pgpool-II : ***
*** python ***
Python 3.9.13*** ruby ***
ruby is not installed.*** Cache status ***
*** WAF ***
off*** SELinux ***
off (permanent)status completed.
`
何か情報を頂けたら幸いです。
よろしくお願いいたします。 -
2022年8月22日 at 18:24 #1012
sasagar さん、こんにちは。
KUSANAGI 9、PHP 8.0 ですね。
頂いた情報を知見のあるものに確認してもらい、助言をいただきました。KUSANAGI では opcache を無効にするより、JIT のオプションを変更することを推奨します。
あるいは JIT を無効にすることを推奨します。JIT オプションの変更例 PHP8.0
opcache.jit=1255これまでの実績で WordPress では opcache に比べて JIT の効果が薄いようです。
opcache を無効にすることによるパフォーマンス低下の方が JIT を無効にすることによるパフォーマンス向上を上回ります。[参考記事]
JIT segmentation fault in PHP 8.1 #7817
https://github.com/php/php-src/issues/7817#issuecomment-1084708354PHP 8: How to setup the JIT
https://stitcher.io/blog/php-8-jit-setupPHP 公式ドキュメント: 実行時設定
https://www.php.net/manual/ja/opcache.configuration.php#ini.opcache.jit- This reply was modified 2 years, 3 months ago by cloudy.
-
-
AuthorPosts
- You must be logged in to reply to this topic.