タグ

performanceとrubyに関するtri-starのブックマーク (4)

  • Taming Rails memory bloat | Mike Perham

    2018-04-25 MRI, the standard Ruby interpreter, has a serious problem with memory bloat in large Rails apps. It’s quite common for me to see Sidekiq processes which are 1-2GB in RSS or even larger! It turns out that a large part of this memory usage is due to memory fragmentation: MRI uses the OS’s memory allocator by default (on Linux, almost always GNU glibc), which seems to work poorly with Ruby

  • Ruby でラインメモリプロファイラ - Qiita

    プロファイラ好きなモニタの前の皆さんこんにちは。@sonots です。この記事では、Ruby コードのどの行がどのぐらいメモリを消費しているか調べる方法を紹介します。 オブジェクトの数を数える Ruby には ObjectSpace というオブジェクトの情報を集めたり操作したりする module があります。 このモジュールの each_object メソッドを使用すると、RubyVM 上の全てのオブジェクトを取り出すことができます。 このメソッドを使って、以下のようなコードを書くと、実行した地点で、RubyVM 中にどのクラスのオブジェクトが何個存在しているのかカウントできたりするわけです。興味深いですね! ObjectSpace.each_object.inject(Hash.new 0) {|h,o| h[o.class]+=1; h } #=> {Class=>241, Strin

    Ruby でラインメモリプロファイラ - Qiita
  • Rails: Puma/Unicorn/Passengerの効率を最大化する設定(翻訳)|TechRacho by BPS株式会社

    まとめ: アプリのサーバー設定はRuby Webアプリのスループットやコストあたりのパフォーマンスに大きな影響を与えます。設定の中でも最も重要なものについて解説します(2846 word、13分) RubyのWebアプリサーバーは、ある意味で自動車のガソリンに似ています。よいものを使ってもそれ以上速くなりませんが、粗悪なものを使えば止まってしまいます。実際にはアプリサーバーでアプリを著しく高速化することはできません。どのサーバーもだいたい同じようなものであり、取っ替え引っ替えしたところでスループットやレスポンスタイムが向上するわけではありません。しかしダメな設定を使ったりサーバーで設定ミスしたりすれば、たちまち自分の足を撃ち抜く結果になります。クライアントのアプリでよく見かける問題のひとつがこれです。 記事では、3つの主要なRuby アプリサーバーであるPuma、Unicorn、Pass

    Rails: Puma/Unicorn/Passengerの効率を最大化する設定(翻訳)|TechRacho by BPS株式会社
  • sysinfo(2)でシステム情報の取得 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    この記事はLinux Advent Calendar 2014の2日目の記事です。 プログラムの中でロードアベレージとかメモリの空き容量を見るのにどうしようかなーと思っていて見つけたのがsysinfo(2)です。 使い方は至って単純でsysinfo構造体のアドレスをsysinfo(2)に渡せば情報が入ってくるのであとはご自由にという感じでいけます。 cだとこんな感じです。SI_LOAD_SHIFTは/usr/include/linux/sysinfo.hにて定義されています。 #include <stdio.h> #include <sys/sysinfo.h> #define LOAD_AVERAGE(x) x / (double)(1 << SI_LOAD_SHIFT) int main(int argc, char **argv) { struct sysinfo info = {

    sysinfo(2)でシステム情報の取得 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
    tri-star
    tri-star 2014/12/03
    rubyから動的ロードする方法の一例も載っている
  • 1