Kusanagi9におけるopcacheの動作について

TOP Forums バグ報告と提案(Requests and Feedback) Kusanagi9におけるopcacheの動作について

Kusanagi9におけるopcacheの動作について

Viewing 1 reply thread
  • Author
    Posts
    • #1011
      sasagar
      Participant

      さくらのクラウドにおける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でオンになっている機能だと問題だなと思っている次第です。

      似たような内容で

      KUSANAGI9にてphp-fpmが落ちる


      こちらのトピックにも行き当たりましたが、特段問題はありませんでした。

      以下現在の 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.
      `

      何か情報を頂けたら幸いです。
      よろしくお願いいたします。

    • #1012
      cloudy
      Participant

      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-1084708354

      PHP 8: How to setup the JIT
      https://stitcher.io/blog/php-8-jit-setup

      PHP 公式ドキュメント: 実行時設定
      https://www.php.net/manual/ja/opcache.configuration.php#ini.opcache.jit

      • This reply was modified 1 month ago by cloudy.
Viewing 1 reply thread
  • You must be logged in to reply to this topic.

Next article

フォーラムについて