[OpenSIPS-Users] OpenSIPS VS Asterisk as registrar (SIPp test)

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Jan 13 13:52:08 CET 2009


Hi Iñaki,

Iñaki Baz Castillo wrote:
> 2008/12/19 Bogdan-Andrei Iancu <bogdan at voice-system.ro>:
>   
>> Also, looking at the error you sent ("build_res_buf_from_sip_req: out of pkg
>> memory  ; needs 25296") - the function requests 25K of mem for the reply
>> :D....my question is - do you register multiple contacts per single AOR ?
>> this is the only way (except a bug) I can explain this huge amount of mem
>>     
>
> Ok, now i've tryed with 5000 different AoR's (instead of 5000
> different contacts for just 2 AoR's) and the conslusion is awesome!
>
> - OpenSIPS is capable of handling 500 REGISTER (with authentication)
> per second. Doing it for 5000 registrations in total caused no
> retransmission, so the process finished correctly in 10 seconds:
>   usrloc:registered_users = 5000
>   

could you sent me (offlist) the sipp script you used? I want to run some 
similar tests with some work on auth + DB part.
>
> - For the same test, Asterisk (which doesn't need to query a DB for
> users since it uses a plain text file sip.conf) it created 17366
> retransmissions, 375 timeouts, and finally, just 4495 users were
> correctly registered.
>   5000 sip peers [Monitored: 0 online, 0 offline Unmonitored: 4495
> online, 505 offline]
>
> If I set more registrations per second, the maybe OpenSIPS requires
> some retransmissions (children=4) but all the registrations end
> correctly. Asterisk instead...
>
>
> PD: Just an issue. I use "usrloc", "db_mode" = 1.
> After the 5000 registrations OpenSIPS has problems related to memory
> and I can't do simple tasks as:
>
>   ~# opensipsctl ul show --brief
>   Dec 22 12:04:13 [26421] ERROR:core:create_mi_node: no more pkg mem
>   Dec 22 12:04:13 [26421] ERROR:mi_datagram:mi_datagram_server: failed
> to process the command
>   500 command failed
>   
this is because there is not enough pkg mem for the MI command to return 
all registered contacts - try to use 4M of pkg mem.

>   Dec 22 12:07:08 [29435] INFO:benchmark:child_init: initing child...
>   Dec 22 12:07:08 [29433] ERROR:db_mysql:db_mysql_convert_row: no
> private memory left
>   Dec 22 12:07:08 [29433] ERROR:db_mysql:db_mysql_fetch_result: error
> while converting row #1488
>   Dec 22 12:07:08 [29441] INFO:benchmark:child_init: initing child...
>   Dec 22 12:07:08 [29433] ERROR:usrloc:preload_udomain: fetching rows failed
>   Dec 22 12:07:08 [29433] ERROR:usrloc:child_init: child(1): failed to
> preload domain 'location'
>   Dec 22 12:07:08 [29433] ERROR:core:init_mod_child: failed to
> initializing module usrloc, rank 1
>   Dec 22 12:07:08 [29433] ERROR:core:main_loop: init_child failed for
> UDP listener
>   
again, this is becuase of pkg mem: here you can either increase pkg mem 
(not recommended), either reduce the numbers or rows per fetch in the 
usrloc module - see fetch_row param (recommended):
    http://www.opensips.org/html/docs/modules/1.4.x/usrloc.html#id2520113
>
>
> I run OpenSIPS with "-m 64". Should I increase it?
> Running with "-m 512" I get a different error:
>
>   ~# opensipsctl ul show --brief
>   Dec 22 12:09:44 [29741] ERROR:mi_datagram:datagram_recur_write_tree:
> failed to write -line too long!!!
>   Dec 22 12:09:44 [29741] ERROR:mi_datagram:mi_datagram_server: failed
> to build the response
>
> I assume this is an error related to opensipsctl command in some way.
>   
yes, I guess the data volume exceeds a datagram size :)
> But anyway, I cannot stop and start (or restart) opensips since I get
> the following error:
>
>   Dec 22 12:11:54 [30183] ERROR:db_mysql:db_mysql_convert_row: no
> private memory left
>   Dec 22 12:11:54 [30183] ERROR:db_mysql:db_mysql_fetch_result: error
> while converting row #1488
>   Dec 22 12:11:54 [30183] ERROR:usrloc:preload_udomain: fetching rows failed
>   Dec 22 12:11:54 [30183] ERROR:usrloc:child_init: child(1): failed to
> preload domain 'location'
>   Dec 22 12:11:54 [30183] ERROR:core:init_mod_child: failed to
> initializing module usrloc, rank 1
>   Dec 22 12:11:54 [30183] ERROR:core:main_loop: init_child failed for
> UDP listener
>   Dec 22 12:11:54 [30221] CRITICAL:core:receive_fd: EOF on 13
>   Dec 22 12:11:54 [30182] INFO:core:handle_sigs: child process 30183
> exited normally, status=255
>   Dec 22 12:11:54 [30182] INFO:core:handle_sigs: terminating due to SIGCHLD
>
> This is very annoying and occurs when there are 5000 users in location
> table. But I'm using 512 MB of shared memory! How to solve it?
>   
This is not about the SHM mem, but about PKG mem - see my above 
indication in reducing the fetch_rows  to 1500 for example.

Best regards,
Bogdan



More information about the Users mailing list