📉

jemalloc をRuby3.0, ECS Fargate で使う

2022/04/05に公開

レンティオのKIMIです。

唐突ですが、sidekiq-cron で動かしているJob のメモリ使用量が気になり始めました。
ということでサクッと[1]ECS のタスク定義を変更して多くメモリを割り当てるかタスク数を増やすでもよかったのですが、jemalloc を導入してみることにしました。

jemalloc については、検索すると先人たちの "試してみた" 記録がたくさん出てきますのでそちらを見ていただくとして、ここではRuby 3.0[2], AWS Fargate での利用実績という判断材料を提供できればと思います。
(古くからあるテクニックなのでいまさら感もありますが、Ruby 3.0 以上での利用例をあまり見つけられませんでしたので)

jemalloc に切り替えた後が青でフィルしている部分です。

MemoryUtilization が100%になることもありましたが80%くらいになりましたので、15%-20%ほどの改善を確認できました。Ruby 3.0 でも世間で言われている通りの結果が出てよかったです。

採用情報

レンティオではRailsエンジニアを積極採用中です。
興味のある方はカジュアル面談でお話しましょう!
https://www.wantedly.com/companies/rentio

脚注
  1. manifest.yml を書き換えてデプロイするだけなので簡単ですし🤓 ↩︎

  2. シリーズ「Migrate to Rails 7, Ruby 3.1」は乞うご期待。Sprockets, Webpacker 外しがヤマ場ですかね〜😶 ↩︎

Discussion