Ruby 2.6.0rc2のJIT観察日記。Dyno (PumaとSidekiq)の起動後10時間くらいはJITが盛んにおこなわれている(緑)いっぽうアプリケーションの応答時間(99パーセンタイル、空色)は短く安定しているのですが、10時間を過ぎるとJITの頻度が下がる一方アプリケーションの応答時間にスパイクが現れはじめます。なんじゃろな。
グラフでは、応答時間とリクエスト頻度はHerokuルータによる測定(30秒でタイムアウト)で、22:10ごろの応答時間のスパイクはリクエストのスパイクに呼応していることが確認できます。JITの頻度は--jit-verbose=1でJIT success (153.9ms)などのログの出現頻度です。successのほか、compactionとfailureが見られました。このdynoではPumaだけではなくSidekiqも稼働しているので、JITの頻度はSidekiqからトリガーされているものも含みます。512 MB RAMのdynoで稼働していて、アプリからのImagemagickの起動を契機に恒常的にスワップが使われています。Rubyのバージョンは2.6.0rc2 (2018-12-15 trunk 66408) +JIT [x86_64-linux]です。