skarayan
2010-Apr-13 13:19 UTC
Need clarification on mongrel, rails, threads, and performance
My understanding is that: 1. rails is single threaded and serves one request at a time 2. mongrel is single threaded and can process one rails request at a time 3. mongrel_cluster starts a few mongrel servers on the same machine Based on this, the single most important factor becomes the time it takes to load a single page (to avoid blocking). If this is all true, what''s considered a "good" page loading time? Thank you. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Andy Jeffries
2010-Apr-13 13:26 UTC
Re: Need clarification on mongrel, rails, threads, and performance
On 13 April 2010 14:19, skarayan <skarayan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> My understanding is that: > 1. rails is single threaded and serves one request at a time > 2. mongrel is single threaded and can process one rails request at a > time > 3. mongrel_cluster starts a few mongrel servers on the same machine > > Based on this, the single most important factor becomes the time it > takes to load a single page (to avoid blocking). >Agreed. Consider Passenger though (as it''s easier to manage than Mongrels) or JRuby if you want multi-threaded serving.> If this is all true, what''s considered a "good" page loading time? >That''s a "How long is a piece of string" type of question. I''d say aim for 50-100ms, but it absolutely depends on what you''re doing. As long as the speed of page load given the amount of servers and traffic you have is acceptable for your users then don''t worry about it. Benchmark, measure, improve/accept rather than ask for opinions - it really is the only way. Cheers, Andy -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
skarayan
2010-Apr-13 15:02 UTC
Re: Need clarification on mongrel, rails, threads, and performance
I am trying to do some rough math: Assuming 100ms per page, that''s about 10 requests per second. With 8 mongrels per cpu (based on suggestions on the web), that''s 80 requests per second. This seems like a very low request/second per machine. How are people getting 1000 or so requests per second? Is my math wrong? What the average overhead by mongrel for cpu and ram? Thank you. On Apr 13, 9:26 am, Andy Jeffries <andyjeffr...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 13 April 2010 14:19, skarayan <skara...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > My understanding is that: > > 1. rails is single threaded and serves one request at a time > > 2. mongrel is single threaded and can process one rails request at a > > time > > 3. mongrel_cluster starts a few mongrel servers on the same machine > > > Based on this, the single most important factor becomes the time it > > takes to load a single page (to avoid blocking). > > Agreed. Consider Passenger though (as it''s easier to manage than Mongrels) > or JRuby if you want multi-threaded serving. > > > If this is all true, what''s considered a "good" page loading time? > > That''s a "How long is a piece of string" type of question. I''d say aim for > 50-100ms, but it absolutely depends on what you''re doing. As long as the > speed of page load given the amount of servers and traffic you have is > acceptable for your users then don''t worry about it. > > Benchmark, measure, improve/accept rather than ask for opinions - it really > is the only way. > > Cheers, > > Andy-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Andy Jeffries
2010-Apr-13 15:14 UTC
Re: Re: Need clarification on mongrel, rails, threads, and performance
On 13 April 2010 16:02, skarayan <skarayan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I am trying to do some rough math: > > Assuming 100ms per page, that''s about 10 requests per second. > With 8 mongrels per cpu (based on suggestions on the web), that''s 80 > requests per second. >I''d say 100ms should be the upper end, you''d want to be aiming for much faster than that but anyway.> This seems like a very low request/second per machine. > How are people getting 1000 or so requests per second? Is my math > wrong? >High performance sites generally tend to use a lot of caching. Rails has a lot of caching mechanisms built in - page caching, partial caching, generic caching.> What the average overhead by mongrel for cpu and ram? >No idea, I use Passenger. The overhead for Passenger is hard to determine, but my clients are happy with the performance so that''s what counts. The best bet might be to see what percentage of your hits are to the homepage and each internal page type. Then setup a JMeter profile to hit pages in that ratio and see what you get. You can then try tweaking and caching. But find out your numbers before worrying about it - don''t guess at performance, measure! Cheers, Andy -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.