Skip to content

Instantly share code, notes, and snippets.

@y-yagi

y-yagi/readme.md Secret

Last active August 19, 2019 23:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save y-yagi/1e2872a424ec77715969f6f593895f55 to your computer and use it in GitHub Desktop.
Save y-yagi/1e2872a424ec77715969f6f593895f55 to your computer and use it in GitHub Desktop.
Ginzarb 74

Fullstaq Ruby

概要

Fullstaq Ruby Server Edition

  • MRIをベースにして、Less memory 、Faster、More secureを実現しているって
  • コンパイル済みのバイナリを提供しており、サーバにコンパイラを入れる必要がない
    • (MJITを使いたくなったら結局コンパイラいるのでは感はある
  • バイナリは各OSのパッケージ(apt、yum)で提供されている
    • これにより、他のライブラリ同様に、OSが提供しているパッケージマネージャーの仕組みでRubyの更新が出来る
    • 各OSが標準が提供しているパッケージと異なり、Rubyのパッチバージョン毎にバイナリを提供する事を保証している
      • そのため、各OSが提供しているパッケージよりもはやく安全なRubyを使用出来る
    • rbenvでインストールする事も出来る
      • fullstaq-labs/fullstaq-rbenv
      • これは一つのマシンで複数のRubyをインストールする必要があるケースに対応する為、らしい
  • jemallocmalloc_trimを使うようにしたバージョンが提供されている

jemalloc + Fullstaq Ruby

  • Ruby本体に--with-jemallocというjemallocを使用する用のオプションがあり、これを使用している
  • Rubyのdescriptionを表示する際に"+jemalloc"と表示されるようにする為のパッチを使用している
  • このパッチ以外はRubyのコードはそのまま
  • jemalloc 3系だとメモリ使用量の削減があるが、5系だとその削減が無いらしく、jemalloc 3系を使うようにしている

malloc_trim

事例

その他

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment