Subject Re: [IB-Architect] Re : License Question
Author Emil Briggs
Andi Kleen wrote:
> >
> > The reason is that each time you have a connection to port
> > 3050 inetd will spawn another copy of gds_inet_server. Their
> > is extra overhead associated with starting a new process for
> > each connection. If you were in an environment where you were
> > getting lots of separate connections at the same time this
> > would cause a performance problem.
> On a modern Unix fork()/exec() has been heavily optimized. The "fork
> is insanely slow" rule of thumb dating from Unix prehistory is often not
> true anymore. On Linux a fork() is really cheap, and the exec can be tuned
> with minor tricks like statically linking the application.

I wasn't really thinking of the fork/exec overhead but more the
application specific stuff as you point out below.

> Preforking and reusing existing processes like Apache does
> offers some speed up, but probably not as much as you may imagine. I
> guess it will be only really beneficial if Interbase has a lot of
> startup overhead per process (I'm not sure if it does, but please
> profile before design). On NT threads are needed, because process creation
> is insanely slow there.

Apache from inetd is noticeably slower than when run standalone. Not
a factor of 10 but it's noticable. Where the slowdown is coming from
I'm not sure but it's definitely there.