Re: Max number of calls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the explanation. Can you point me in the direction on howto setup this single Gk process with multiple proxy processes?
 

David Winter
Senior Network Engineer
Planet-Telecom, Inc.
Tampa FL
(813)901-5182 Office
(813)864-3162 Direct
(813)817-4204 Mobile
(813)881-9762 Fax
------------------------------------------
AIM:     mobofool
ICQ:      3563403
MSN:    dwinter@xxxxxx
Y!:        vt_fool


Craig Southeren wrote:
Markus and David,

The problem is that Unix programs are just not designed to handle
hundreds of file handles in a single select statement. The "poll"
command was designed as a better, but not perfect, solution to that
problem.

There will always be a limit on the number of the file handles a single
process can address. Expanding it from the default of 1024 to 16384
certainly means that more file handles are available, but it also means
that more CPU time will is spent simply manipulating lists of FDs rather
than doing useful work (as demonstrated by Markus's figures). For a good
explanation of the tradeoffs of various approaches, see
http://www.kegel.com/c10k.html

>From experience, the way to solve this problem is to use a single
gatekeeper with multiple seperate proxy processes. I personally have
seen a single 1.6Ghz Linux machine handle more than 400 simultaneous calls
with no problems using this approach. That was signalling only - doing
media as well would reduce the number of calls, but then again, using a
dual 3Ghz machine would increase it again dramatically.

A single gatekeeper process can easily handle thousands of registrations,
but there is no way it can also handle the call proxying for that number
of users at any useful utilisation ratio. And for systems that need to
support tens of thousands of users, with thousands of simultaneous calls,
a distributed system of proxies and GK will always be needed.

And yes, such a system does exist :)

   Craig

On Thu, 15 Apr 2004 10:15:40 +0200
Markus Storm <markus.storm@xxxxxxxxxxxxx> wrote:

  
david winter wrote:

    
I understand that part, but is it just really hard to proxy the RTP? 
is there a bottleneck somewhere? is the code just not efficient 
enough? (not that i am knocking the code, this is great stuff.) but I 
dont see the value in proxying (barring doing it for NATs) this until 
i can get closer to 500 proxied RTP calls on a $3000 computer. this 
coming from the perspective of an international voip carrier, carrying 
LOTS of minutes.
      
I agree (same business, same problem here).

Interesting, though, that most of the CPU seems to be burned in select():
I've compiled with LARGE_FDSET enabled. Without that, gnugk burns even 
100% CPU.


[root@lnxc-025:/usr/local/bin]$ strace -cp 22671
Process 22671 attached - interrupt to quit
Process 22671 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 80.41    1.921345          58     32953           select
  9.52    0.227385           9     25324           sendto
  6.70    0.160188           6     25324           recvfrom
  1.61    0.038422          93       414       414 rt_sigsuspend
  1.23    0.029284           4      7600           gettimeofday
  0.24    0.005694           7       838           kill
  0.11    0.002519           9       285           write
  0.08    0.001927           5       414       414 sigreturn
  0.07    0.001712           4       414           rt_sigprocmask
  0.02    0.000432          24        18           send
  0.01    0.000216           6        36           recv
  0.00    0.000099          33         3           shutdown
  0.00    0.000057          10         6           time
  0.00    0.000041          21         2           socket
  0.00    0.000036          12         3           close
  0.00    0.000028          14         2           listen
  0.00    0.000014           7         2           bind
  0.00    0.000009           5         2           getsockname
  0.00    0.000009           5         2           setsockopt
------ ----------- ----------- --------- --------- ----------------
100.00    2.389417                 93642       828 total
    


-----------------------------------------------------------------------
 Craig Southeren, craigs@xxxxxxxxxxxxxxxxx http://www.postincrement.com
 Post Increment - Software, Consulting and Services
 Co-founder of the only open source H.323 project
 Phone: +61 2 43654666   Fax: +61 2 43673140   Mobile: +61 417 231046
 ICQ: #86852844          MSN: craig_southeren@xxxxxxxxxxx   
 GnuPG Public Key:  http://www.postincrement.com/pgp.txt
 Blog:              http://www.southeren.com/blog/

  

[Index of Archives]     [SIP]     [Open H.323]     [Gnu Gatekeeper]     [Asterisk PBX]     [ISDN Cause Codes]     [Yosemite News]

  Powered by Linux