Hey folks,
I'm working on an EventMachine server as a backend for a realtime game
& chat. But before we commit to using this in production, we need to
be able to see how it performs. Is there a recommended way to get
insight into performance of an EventMachine-based program? For
example, I would like to see bytes sent/received (per socket per
second), open sockets (per second), memory usage, processor usage,
time per request (request = data_received call).
Am I going to have to custom-build this stuff into my server, so I can
get these metrics while load testing? Do I just need to use the
standard Benchmark library and go with that? Or is there some either
(1) built-in metrics/monitoring ability within EventMachine, or (2)
gem I could install and leverage?
Thanks,
Steve
Aman
> _______________________________________________
> Eventmachine-talk mailing list
> Eventmac...@rubyforge.org
> http://rubyforge.org/mailman/listinfo/eventmachine-talk
>
_______________________________________________
Eventmachine-talk mailing list
Eventmac...@rubyforge.org
http://rubyforge.org/mailman/listinfo/eventmachine-talk
It might be interesting to profile this test to see what was slowing
it down (I've been hacking on a profiler at
http://github.com/tmm1/perftools.rb). Can you share your test?
> I ran this for over an hour on my machine. It averaged about 3000 RPS. The
> server process and clients process each took just under 7mb RAM. The
> clients process took about 80% CPU, while the server took more like 15% CPU.
> All in all pretty dang good. :)
You can use EM.kqueue=true on OSX and EM.epoll=true on Linux for added
performance gains.
> I think my test has convinced my coworkers and boss -- eventmachine IS up to
> the task. We will be building our gameserver on it.
Awesome, let us know if you have questions or run into problems.
Aman
Fascinating. I wonder how the google perftools profiler compares with
gprof straight.
-=r