Henning Westerholt wrote:
Hi Henning!
btw, there is no need to re-compile the server just to change this setting, its a normal daemon binary parameter. 128 MB should be really fine, given the load you quoted.
Ah, OK. Missed that. I had already defined the -m as 256, wasn't aware that that was shared. So I'll let it run and see how it goes and if it will keep growing till it reaches 256.
With today memory sizes/ prizes you could use for example 512 MB, which should give you plenty of room even in really abnormal load conditions. And as its shared, you'll have still plenty of room for e.g. the database.
Yep. It's basically to just use a huge amount and then normally you wouldn't hit it. I understand from all of this that the memory "growing" is really something that is not specific to my setup here.
You mentioned the the loops a few times, normally they should be pretty fast detected by max forward counter checks and additionally by diversion header checks?
Well, it's more like this. A customer sends an invite, which is really to himself (failboat). So I send it to him (directly or via a PSTN gateway, depending on the routing setup). Which causes (for example when their PBX has a forwarding) a new invite to me, new call leg. Untill one of both sides dies or is congested. That's normally not Kamailio, so that's the good news. Only thing then is the memory usage after this spike. I'm also running spike, so in the end I just send them 480's back.
With the memory debugging you could dump all the allocations during runtime, but they are a bit hard to read for a non-developer. But this way you could reproduce "call by call" how your server behave and how the situation develops.
I had this on and it was a LOT of info. :) I made some calls and it showed that there's lots of stats and init stuff, for the rest nothing shocking. But as you said, I'm not a dev so I might have missed shocking errors. :)
If you'd have a leak in a common used code path, then you'll run out of memory pretty fast, like in a few days. If your servers are stable (like some weeks or month) with the setting you use at the moment, i don't think there is much to worry.
OK, I'll keep an eye on it. Will run with 128MB for now and see how it grows with the load. I was looking at a 1.4.4 -> 1.5.0 upgrade, but that was a bit more complicated than 1.3 -> 1.4 because of the database layout and some changed modules. Have to write a failback plan before I upgrade. Might also wait for 3.0.0, which sounds interesting.
/Robin