[Serusers] SER Reports "out of memory"

Zeus Ng zeus.ng at isquare.com.au
Wed May 25 03:42:45 CEST 2005


See inline comment.

> Thanks for the info. I did change that config.h define and 
> now it works well. 

Great to hear that the little change solve your problem.

> 
> My newest problem is the ser start time. In my very 
> non-scientific test it took ser about 25 minutes before it 
> began serving requests because it was loading usrloc information.
> 
> That was using 500000 records in the location table. The 
> MySQL server was running on the same box as SER, which is 
> also my workstation, so stuff like Firefox, X, etc, were in use.
> 
> But this does bring up an interesting problem namely - how 
> can ser service SIP clients while loading large number of 
> usrloc records? I'm kind of thinking that this could be a big 

No, you can't. In fact, you will experience a temporary slow down when a
hugh number of UA is un-registering because the table was locked during that
period of time. I once use sipsak to register 5000 users in 15s. When they
all expired about the same time, SER hang for a while for locking the table
to release the record from memory.


> problem. When dealing with massive user bases there is no 
> such thing as a "quick restart".

Well, that's the trade-off of memory base db. You need to balance the
startup time verse runtime performance.

> 
> We do have LVS fully "sip-aware" so we are doing true UDP 
> load balancing based on the Call-ID header, but this is still 
> a problem [potentially] with replication ucontact records 
> while the server is starting up.
> 
> I wonder if it is possible to modify the behaviour of usrloc 
> so that it loads in the background while ser is processing 
> SIP messages. And when lookup("location") is executed, usrloc 
> searching the the ser cache and then MySQL if no hit is found 
> in cache -- or something like that.

This triggers me to bring up the common question asked on this list before.
Can SER use just MySQL for usrloc? A similar concept has been done on the
speeddial module. It would help load distribution, faster startup time and
better redundancy. Of course, slower lookup as tradeoff.

I once consider replacing the build-in memory base DB with MySQL memory db.
However, that idea was dropped due to time constrain and compatability
(postgresql) issue.

> 
> Can anyone on serusers give some tips as to how to get ser to 
> load usrloc entries optimized? I know the usual stuff like 
> faster MySQL disks, faster network connection, dedicated app 
> servers, etc, etc. But I'm looking for ser and/or MySQL 
> tweaking hacks.

Good luck on your search.


> 
> Regards,
> Paul
> 
> 




More information about the sr-users mailing list