Learn how parallel testing helps DevOps teams boost their testing efficiency and discover the best parallel testing strategies and tools for your organization. →
最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente
Important warning: You should be aware when using fibers with Rails that you can get a stack overflow error if your stack grows bigger than 4Kb (which is enough for most things though), this got even worse with the 3.1 release in which you can easily overflow the stack, here is an example here. Simple async demo stack with Rails 3.1 + EventMachine and Fibers. Hit localhost:3000/widgets to do a 1s
The document provides performance best practices for Ruby on Rails applications. It discusses avoiding premature optimization, measuring performance bottlenecks, caching, SQL optimizations, and alternative storage options like NoSQL. It also recommends profiling tools like New Relic, Scout, Rack::Bug and ruby-prof to analyze logs and identify slow requests and actions. Benchmarking and integrating
Update 6: Some interesting changes from Twitter's Evan Weaver: everything in RAM now, database is a backup; peaks at 300 tweets/second; every tweet followed by average 126 people; vector cache of tweet IDs; row cache; fragment cache; page cache; keep separate caches; GC makes Ruby optimization resistant so went with Scala; Thrift and HTTP are used internally; 100s internal requests for every exter
最近、2.0な方々の間でTwitterが話題になってる。で、そのTwitter自体も面白いんだけど、TwitterについてDHHがブログを書いてRailsでの大規模サイト構築が話題になってるのが面白い。 Twitter trouble (Loud Thinking - DHH) まずTwitterの高負荷について言及、Twitterは11,000リクエスト/秒 の高負荷で問題となっているらしい。 そしてスケーラビリティの鍵はDB分割だ、と言っている。Railsは基本一つのDBを見るのでスケーラビリティの問題になる (確かにWebサーバはロードバランサがあればいくらでもスケールするしね、Sessionの共有だけ気を付ければ) ↓ Dr Nic » Magic Multi-Connections: A “facility in Rails to talk to more than o
Posted by masuidrive Mon, 01 Jan 2007 11:37:00 GMT 過去に作ったRailsアプリがどれも遅いので、色々ベンチマークなどを取ってみると、予想以上にviewの部分が遅いことが判明。 なんでveiwが遅いのか、さらに調べていくとrender :partial => “hogehoge”がかなり遅いっぽい。特にループの内側にあったり:collectionを指定すると激遅。ソースを読んでないので全くの憶測だけど、毎回ERBをファイルから評価してないか? 試しに、1つのページに5つある(うち一つは:collectionで10回ループ) render :partialを手で展開して実行してみると、apachebenchで1.3倍(19reqs/sec→24.7reqs/sec)になった。これはかなり効果が高いんだけど、メンテナンス性が著しく落ちるので、他
Eric Hodel | Wed, 13 Sep 2006 07:44:00 GMT Posted in Rails, Ruby Now that Ruby 1.8.5 is out setting process limits is easier than ever before! We used to use a small shell script run from cron to kill processes that got too big for their britches. Unfortunately this was difficult to do both well and simply (we chose simply). Now, in Ruby 1.8.5, we have Process::setrlimit: $ ri Process::setrlimit
Rails 1.1 Performance Report (vs. 1.0) Short Summary for the Impatient We have worked hard on making Rails 1.1 perform on the same level as Rails 1.0. This goal has been achieved and in some cases we have improved performance significantly. The following performance data table shows the speed difference for the fastest availabe configuration for the tested application. page c1 totalc2 total c1 r/s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く