[asterisk-bugs] [JIRA] (ASTERISK-27334) Pjsip Performance issues with qualify enabled

Joshua Colp (JIRA) noreply at issues.asterisk.org
Thu Oct 12 10:39:21 CDT 2017


     [ https://issues.asterisk.org/jira/browse/ASTERISK-27334?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joshua Colp closed ASTERISK-27334.
----------------------------------

    Resolution: Duplicate

> Pjsip Performance issues with qualify enabled
> ---------------------------------------------
>
>                 Key: ASTERISK-27334
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27334
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: pjproject/pjsip
>    Affects Versions: 13.17.2
>         Environment: Linux, Centos 7.2.1511 (Core) , 3.10.0-514.26.2.el7.x86_64
> 1 CPU, Intel(R) Xeon(R) CPU E5-2630 v3 @ 2/40GHz
> 1GB RAM
> VMware Box
>            Reporter: VeeamIT
>
> I encountered a problem with Asterisk version 13.17.2. I have several Asterisk systems with lots of extensions which work perfectly on chan_sip. Recently we decided to migrate to chan_pjsip as it has many features we would like to use and which are not available in chan_sip, one of them is maxcontacts directive and ability have static contacts along with dynamic ones. I set everything up, first with 1-2 extensions, tested - everything is good. However as soon as I add all of the extensions i need, and it is around 3200, on pjsip reload console freezes, CPU goes to 100% and after pjsip is unresponsive, all extensions went to Unreachable state and phones can’t register, asterisk doesn't respond to any SIP messages and pjsip module seem to be not working at all.
> I can see messages like:
> {code}The ‘subm:endpoint_topic_all-cached- task’ - processor queue reached 500 scheduled tasks.{code}
> {code}core show taskprocessors{code} shows queue and number in queue increasing under pjsip/default like this:
> {code}Processor                                      Processed   In Queue  Max Depth  Low water High water
> app_voicemail                                          0          0          0        450        500
> ast_msg_queue                                          0          0          0        450        500
> CCSS_core                                              0          0          0        450        500
> iax2_transmit                                          0          0          0        450        500
> pjsip/default-0000000b                              1708      22675      22674        450        500
> pjsip/default-0000000c                              1834      22673      22653        450        500
> pjsip/default-0000000d                              1825      22672      22668        450        500
> pjsip/default-0000000e                              1777      22668      22665        450        500
> pjsip/default-0000000f                              1821      22674      22655        450        500
> pjsip/default-00000010                              1697      22678      22654        450        500
> pjsip/default-00000011                              1429      22864      22854        450        500
> pjsip/default-00000012                              1825      22664      22639        450        500 {code}
> I added 1 more core to this test server to see if it helps but asterisk now eat 200% of CPU and situation has not changed.
> It is worth mentioning that all of my extensions have static
> {code} contact=sip:${EXTEN}@IP:5060{code}
> directive because i need asterisk to dial not only registered IP but sending a call to another server as well.
> As soon as i lower down number of loaded extensions to, say, 400 it loads, a bit slow but extensions are working fine.
> So it seems like the problem is in amount of extensions.
> I tested this configuration and this problem happens on all versions beginning from version 13.8(didn’t test earlier ones) and to 15.
> I gathered backtrace and “core show locks” information during this problem. Should this be added to asterisk tracker?
> I have 2 pjsip configuration files.
> pjsip.conf
> {code}[global]
> type=global
> user_agent=MY PBX
> regcontext=registerstate
> keep_alive_interval=0
> disable_multi_domain=yes
> default_from_user=mypbx01
> mwi_tps_queue_high=5000
> mwi_tps_queue_low=-1
> [transport-udp]
> type=transport
> protocol=udp
> bind=MY_IP
> local_net=MY_NETWORK
> [transport-tcp]
> type=transport
> protocol=tcp
> bind=My_IP
> [system]
> type=system
> threadpool_max_size=0
> #include /etc/asterisk/pjsip_users.conf
> {code}
> pjsip_users.conf
> {code}[sets](!)
> type=endpoint
> context=internal
> dtmf_mode=rfc4733
> allow=!all,alaw,g722
> inband_progress=no
> transport=transport-tcp
> identify_by=username
> allow_subscribe=yes
> direct_media=yes
> direct_media_method=reinvite
> connected_line_method=update
> moh_suggest=support
> rtp_ipv6=no
> send_pai=yes
> send_rpid=yes
> allow_transfer=yes
> [auth](!)
> type=auth
> auth_type=userpass
> [id](!)
> type=identify
> [aor](!)
> type=aor
> qualify_frequency=60
> max_contacts=3
> [5801](sets)
> from_user=5801
> auth=5801
> aors=5801
> allow_subscribe=yes
> callerid=Testing account <5801>
> mailboxes=5801 at default
> [5801](auth)
> password=secret
> username=5801
> [5801](aor)
> contact=sip:5801 at CUSTOM_IP:5060
> [5801](id)
> endpoint=5801 {code}
> There are ~3200 extensions added in the same way as 5801.
> with {code}qualify_frequency=60{code} on {code} reload res_pjsip.so {code}
> Actual Result: pjsip module freezes and stops responding to commands and SIP messages.
> Expected Result: smooth reload with working pjsip
> with {code}qualify_frequency=0{code} on {code} reload res_pjsip.so {code}
> Actual Result: pjsip module freezes for about a minute or so and then loads up all extensions
> Expected Result: smooth reload with working pjsip



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list