[ANN] Ebb web server version 0.0.3

4 views
Skip to first unread message

ry

unread,
Mar 4, 2008, 3:45:38 AM3/4/08
to Ruby on Rails: Talk
Ebb aims to be a small and fast web server, written in C, specifically
for hosting web frameworks like Rails and Merb.

It is not meant to be a full featured web server like Lighttpd,
Apache, or Nginx. Rather it should be used in multiplicity behind a
load balancer and a front-end server. It is not meant to serve static
files in production.

Because Ebb is written in C, other language bindings can be added to
make it useful to Non-Ruby frameworks. For example, a Python WSGI
interface is forthcoming.

Visit

http://ebb.rubyforge.org/

for downloads and more information. Please note that Ebb depends on
having Glib installed.

Release 0.0.3 includes many bug fixes that were encountered after the
first release. Mostly related installation and the ebb_rails
executable.

If you have problems, please send me a bug report:)

ry

Stefano Cobianchi

unread,
Mar 4, 2008, 8:54:12 AM3/4/08
to Ruby on Rails: Talk
On Mar 4, 9:45 am, ry <ry.d...@googlemail.com> wrote:

> If you have problems, please send me a bug report:)

I don't know if it's a bug, but I've found that Ebb uses much more
memory than Mongrel or Thin.
This is my application's memory usage after 1000 requests (on my Mac,
I've yet to test it on other systems):

Ebb: RSIZE=35M, VSIZE=258M (started at 255M right after launch)
Thin: RSIZE=31M, VSIZE=47M
Mongrel: RSIZE=33M, VSIZE=49M

what puzzles me is the abnormal VSIZE value for Ebb...

S.

Jason Roelofs

unread,
Mar 4, 2008, 9:08:42 AM3/4/08
to rubyonra...@googlegroups.com
Just a few clarifications to prevent any confusion as to what's
written on your website:

First: EventMachine is not a ruby binding to libevent. EM is a
reactor-based network communication library. See it as Twisted Python
for Ruby. EM doesn't even use libev / libevent underneath because of
cross-platform compatibility concerns.

Second: EventMachine is a Ruby extension written in C++ (and being
ported over to C). There is a pure ruby version of it as well, but
that's for those who don't want to deal with extensions and of course
don't need the speed of C++. I put this because the page seems to make
the assumption that EM is written purely in Ruby.

Jason

ry

unread,
Mar 4, 2008, 9:59:58 AM3/4/08
to Ruby on Rails: Talk
That's correct! No, that would be not optimal. In ebb.c I've been
playing with larger buffer-sizes and concurrent clients- apparently
that wasn't reset in the release!

#define EBB_BUFFERSIZE (1024 * (80 + 32) * 2)
#define EBB_MAX_CLIENTS 950

That would make EBB_BUFFERSIZE * EBB_MAX_CLIENTS = 217907200 bytes =
207.8 megabytes.

Try something more reasonable for those values. E.G.

#define EBB_BUFFERSIZE (1024 * 120)
#define EBB_MAX_CLIENTS 200

I will bring down these values in the next release.

Thanks,
ry



On Mar 4, 2:54 pm, Stefano Cobianchi <stefano.cobian...@gmail.com>
wrote:

ry

unread,
Mar 4, 2008, 10:03:33 AM3/4/08
to Ruby on Rails: Talk
Hi Jason,

Thank you for the correction. I'm not sure why I was under this
impression - I'll update the site.


ry

On Mar 4, 3:08 pm, "Jason Roelofs" <jameskil...@gmail.com> wrote:
> Just a few clarifications to prevent any confusion as to what's
> written on your website:
>
> First: EventMachine is not a ruby binding to libevent. EM is a
> reactor-based network communication library. See it as Twisted Python
> for Ruby. EM doesn't even use libev / libevent underneath because of
> cross-platform compatibility concerns.
>
> Second: EventMachine is a Ruby extension written in C++ (and being
> ported over to C). There is a pure ruby version of it as well, but
> that's for those who don't want to deal with extensions and of course
> don't need the speed of C++. I put this because the page seems to make
> the assumption that EM is written purely in Ruby.
>
> Jason
>
> On Tue, Mar 4, 2008 at 8:54 AM, Stefano Cobianchi
>
Reply all
Reply to author
Forward
0 new messages