On 6/1/06, Daniel-Constantin Mierla daniel@voice-system.ro wrote:
Hello,
On 06/01/06 16:24, Dimo wrote:
Hi, I am having performance issues with openser running on Fedora. Here is the scenario: I have a openser which is sending calls to two asterisks, doing radius accounting and local syslog accounting, the database for user location is a local MySQL and the asterisks are load-balanced through dispatcher. i have modules: loadmodule "/usr/local/lib/openser/modules/mysql.so" loadmodule "/usr/local/lib/openser/modules/sl.so" loadmodule "/usr/local/lib/openser/modules/tm.so" loadmodule "/usr/local/lib/openser/modules/rr.so" loadmodule "/usr/local/lib/openser/modules/maxfwd.so" loadmodule "/usr/local/lib/openser/modules/usrloc.so" loadmodule "/usr/local/lib/openser/modules/registrar.so" loadmodule "/usr/local/lib/openser/modules/nathelper.so" loadmodule "/usr/local/lib/openser/modules/textops.so" loadmodule "/usr/local/lib/openser/modules/xlog.so" loadmodule "/usr/local/lib/openser/modules/avpops.so" loadmodule "/usr/local/lib/openser/modules/avp_radius.so" loadmodule "/usr/local/lib/openser/modules/acc.so" loadmodule "/usr/local/lib/openser/modules/options.so" loadmodule "/usr/local/lib/openser/modules/uri_db.so" loadmodule "/usr/local/lib/openser/modules/auth.so" loadmodule "/usr/local/lib/openser/modules/auth_db.so" loadmodule "/usr/local/lib/openser/modules/auth_radius.so" loadmodule "/usr/local/lib/openser/modules/dispatcher.so"
Now the problem is that if i use sipp to send INVITE with 10-20 call attempts per seccond at one time ser just timeouts without answering for 1-2 seconds and sipp has to retransmit the packets. The timeout which sipp waits is 500ms so it should be enough. I have something like on 500 call attempts i get 700 retransmits.
I will start stripping the config to troubleshoot but i was wondering if you can give me some idea what the problem might be or some good advice on troubleshooting, where should i look, and if you have any bes practices to recommend.
what is the number of children you set in your configuration file? Try with children=16 or 32. If you use t_relay(), openser should sends back a 100 trying once the request is forwarded, in order to stop the retransmission of the request from caller. You can do it stateless via sl_send_reply() just a beginning of your script if you have time-consuming operations.
I used the default children=4, but tried with 16 and 32 and it still retransmits. I use t_relay. The actual thing I observe is that openser starts to process the first calls just fine and at a point it just freezes and does not give neither 100 trying nor anything else. Then in 1-3 seconds it starts replying again, and after 2-3 seconds it gets clogged again. I wolud appreciate any other ideas. Like is there some way to maybe increase the memory openser is using?
Anyway, OpenSER does not answer the calls, it just routes them. Check to see if asterisk is able to manage all the traffic you send to it - it is the box which answers the call.
Actually just to test the openser i sent non-existing numbers not to load the asterisk too much. I just want to get the trying an/or error messages from openser and that is where it times out often. In my scenario i authenticate the invites, and the initial 401 which challenges the invite to be retransmited with user info is also timeouting at similar loads and times, so no asterisk there.
Cheers, Daniel
BR, Dimitar
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users