On Feb 25, 2004 at 19:24, Arnd Vehling <av(a)nethead.de> wrote:
Hi,
is there any way to approximately calculate a safe shared
memory size for SER based on total subscribers and concurrent
calls maybe? Is there a different sharedmem requirement depending
on the modules one uses?
Yes, shared memory usage depends on the modules used, but the biggest
consumer under stress is tm, the others are just noise :-)
tm uses about 5k per transaction, so at any given moment it will use
5k*no_trans_in_mem. So it depends on how much a transaction lives in
mem. and how many transaction per second ser can process on the
respective machine.
E.g.: - the optimistic scenario in which all transactions complete
immediately => they will still live in memory for WT_TIME_OUT=5s.
For a host capable of 5000cps (there are 2 transaction per call)
=> 5000*2*5k*5 => 250Mb. In practice it uses ~ 300Mb.
- in the worst possible case you have someone flooding you with
invites which are never replied by the other side (sip DOS).
The same 5000cps machine should be able to process ~ 10000
invites/s => 10000*5k*FR_INV_TIMEOUT (FR_INV_TIMEOUT is by
default 120s) => 6GB!.
This is a little bit extreme, if you have a normal machine you should
expect <2000cps, so memory won't be such a big problem.
(for reference: a dual athlon mp2000+ running a speed-optimized ser does
about 4800-4900cps).
Andrei