On Feb 25, 2004 at 19:24, Arnd Vehling av@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