[<nh>] I am trying to put some load
on GnuGK and see how it performs. It is a totally amazing
experience. Watching the status window seems a lot similar to the
numbers dropping in the movie Matrix.
[<nh>] CallGenI? Do you mean
CallGenerator? No, I'm not using any call generator. I'm using this box
LIVE in route, as a simple SS (FileIPAuth, no other Authentication) between my
buyers and my terminators. That is why I faced the nightmare today, when
I added some capacity in the termination side, but increased the wrong IP's
entry in the INI file (the wrong one was just 1 digit off). :))
Took me around 3-4 minutes to figure out, but in those 3-4 minutes it felt as
if my existence was at stake!!!
[<fi> ] Ah, i see. Nothing better than letting
your customers test your softswitch
:-)
[<nh>]
I'm running GnuGK Full Proxy &
FileIPAuth on Win2003 with a PIV 2.4GHz 1024MB RAM system. I've had
no problems running 30-32 simultaneous calls. I'm now testing with 40-50
calls, and faced the "Too Many Ports" error, which was corrected by increasing
the CallSignalHandler and RtpHandler to 3 each. Having a problem like
this on a live system is just like your worst nightmare.
[<fi>
] If you run into port limitations, you may also use h.245
tunneling to "save" some ports per call.
[<nh>] Thanks for the tip. Does that increase
overhead?
[<fi> ] I don't think so. But Jan or Michal sure no
better.
Any performance bumps?
[<fi>
] Same
Any ideas on what impact
CallSignalHandler and RtpHandler has on processor / memory usage?
[<fi> ] As far as we
tested, none in special. Of course usage will grow because of increasing
traffic (but that's why you are raising the handlers). There is a presentation
of the open telephony summit on the gnugk website where Jan put it a rule of
thumb to calculate how many handlers one should use depending on the traffic
expected.
[<nh>]
Currently, my CPU is showing a 40-45% load.
And, my memory utilization is at 150MB. My Bandwidth Utilization is
around 1.2-1.4 Mbps (G.723r63 codec only), as shown by
DUMeter.
[<nh>] I have
learned a few things during all this:
[<nh>] 1.
It's best to turn debugging off, when no debugging info is needed. That
makes the CPU load lower, and GnuGK more responsive.
[<fi> ] Yes, that's my experience too. It doesn't take
much on debug trc 5 to generate lag on the call signaling.
[<nh>] 2.
When doing changes to the INI File, (Re)^n check your config file, for
even the smallest of changes. A small mistake can be
fatal.
[<nh>] Now, here
are my questions:
[<nh>] 1.
Is 40-45% load alright for my GnuGK to perform smoothly? What should be
the ideal range?
[<nh>] 2.
Will GnuGK be able to handle more / less calls if =>
[<nh>]
2 a. Proxy is set to 0?
[<fi>
] Yes. Diff: Factors.
[<nh>] Could you mention the
factors?
[<fi> ] Hard to say. But sure at least three
or four times more, i would expect even
more.
I have
ample BW (3Mbps), so BW is not an issue. Would port count be reduced of
Proxy is set to 0 (probably RTP ports wont be needed?)?
[<fi> ] Sure. I would
only use proxy if you really need it.
What other
factors?
[<nh>]
2 b. OS is changed
to Linux or FreeBSD or anything else?
[<fi> ] Linux yes (others i don't know). Diff:
Some 10 percents more in best case.
[<nh>] Did you actually test on different
OSes? I remember someone (probably Michal) mentioning that Linux uses
ports more efficiently.
[<fi> ] We tested on
Linux (fc3) and W2k03 SRV. Regarding ports handling there are
"strange" issues on
both OSes.
[<nh>]
2 c. I reduce RAM to 512 MB or
even 256MB, since only 150 out of 1024 MB is shown by Windows as
used?
[<fi>
] On Windows, do not remove RAM, better think of adding add. RAM
and disably swap file. Also, a fast mainbord and RAM can increase performance
by some 10 percent easily.
[<nh>] Disable swap file? What
will that do?
[<fi> ] Prevent windows from
permanently swapping ram to harddisk and vice versa. The
swapping process slows almost everything
down.
As I said, my Mem Utilization is
at only 15% max. Would you still suggest adding more RAM?
[<fi> ] Yes (of course
always depending on how much traffic you will have on your system). But:
best thing to do is to monitor your system and when you find out
that ressources are getting low or you realize service quality
problems, you still have time to react.
[<nh>]
=> In all these 3 cases,
how much difference in performance can I expect?
[<fi> ] Please understand that i can only make an
estimation based on my testing experience.
[<nh>] Yes, I was looking for sharing
my experiences among GnuGKusers.
[<fi> ] One more point about testing: if you reach
limits, carefully check if it are gatekeeper limits or callgeni limits!
[<nh>] As I said, I was checking with
live Traffic, and the GnuGK was accepting calls from 2 different IPs (via
FileIPAuth), each of which were Cisco5350. And, they hit calls really
fast, e.g., during those 3-4 minutes, when I had the wrong entry, I had
around 10-15 call requests hitting every sec for a mere 5 ch increase in
capacity.
[<nh>] One other
question, if I run multiple instances of GnuGK bound to different IPs on
the same machine, will it be reducing the total Max Call Handling Capability
count? Say on the same Machine, I have the following
setup:
1. GnuGKX handling only Call
Signalling (with FileIPAuth only), with Proxy set to 0. This only routes
the calls to other GnuGKs on the same machine.
2. GnuGK1...n (1<n<10), all
running on Proxy=1, and having FileIPAuth on each to accept from only
GnuGKX.
Will this scenario reduce the
total Max Call Capability of the whole BOX?
[<fi> ] No idea. I
have never done this and to be honest, i don't think that i will ever
try this since i don't think it's a good idea to have multiple
instances of a gatekeeper on one machine (as with many other services
too). If you can do it with one gatekeeper instance, i would do it with
one. Generally multiple instances of any service produce overhead and
ressource conflicts (espacially if they were not implemented with multiple
instances in mind).
But
maybe some on the list has done this
before?
Regards
Frank