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

Iñaki Baz Castillo ibc at aliax.net
Mon Dec 22 12:14:17 CET 2008


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


- 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

  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



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.

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?


Thanks a lot.


-- 
Iñaki Baz Castillo
<ibc at aliax.net>


More information about the Users mailing list