[Freeswitch-users] BLF under high load

Peter Steinbach lists at telefaks.de
Thu Mar 11 13:09:34 UTC 2021


While debugging presence, I found a lot of the following lines on the
freeswitch console

2021-03-11 13:26:34.496493 [CRIT] sofia_presence.c:1377 CHECK SQL:
9886 at customer.mydomain.net [select state,status,rpid,presence_id,uuid
from sip_dialogs where call_info_state != 'seized' and
hostname='fs02.mydomain.net' and profile_name='internal' and
((sip_from_user='9886' and sip_from_host='customer.mydomain.net') or
presence_id='9886 at customer.mydomain.net') order by rcd desc]
2021-03-11 13:26:34.496493 [ERR] sofia_presence.c:1435 PRES SQL update
sip_subscriptions set version=version+1 where
hostname='fs02.mydomain.net' and profile_name='internal' and
sip_subscriptions.event != 'line-seize' and
sip_subscriptions.proto='sip' and (event='presence' or event='dialog')
and sub_to_user='9886' and (sub_to_host='customer.mydomain.net' or
sub_to_host='xxx.xx.x.xxx' or sub_to_host='N/A' or presence_hosts like
'%customer.mydomain.net%') and (sip_subscriptions.profile_name =
'internal' or presence_hosts like '%customer.mydomain.net%')

  * The first query returns 0 entries, when I run it manually, line is
    marked as [CRIT]
      o my impression is that this query is always empty because _all_
        values of sip_dialogs.call_info_state are empty, allthough we
        have about 100 entries in sip_dialogs table. Running 100k
        continuous queries against this table, I could not find any
        other value than '' for sip_dialogs.call_info_state
  * The second query updates 7 entries, when I run it manually, but line
    is marked as [ERR]


Maybe this info creates some new ideas.

Best regards
Peter


Am 11.03.21 um 13:08 schrieb Peter Steinbach:
>
> We made some investigations on our Production database. We set mysql
> slow log to 0.02 sec and we did not discover any long running qeuries
> concerning presence.
>
> The command
>
>     select * from INFORMATION_SCHEMA.PROCESSLIST  where command <>
> 'Sleep';
>
> shows, that presence queries run between 0.1 and 1 milliseconds. So I
> do not really feel, that the Mysql database is the bottleneck here.
> MySQL show about 10-15%CPU on an 8 core machine. Freeswitch runs at
> about 50% CPU on a different 8 core machine.
>
> Nevertheless we have severe problems with presence. I have e.g. a Snom
> phone and a Yealink phone on my desk with a BLF for a 3rd phone, which
> is not in a call at present. BLF on Snom is "on" and BLF on Yealink is
> "blinking". Both should be "off". This is very strange to me. How can
> this happen? BTW when this system was under no load, before we
> migrated our customers, everything worked fine.
>
> So any help is very much appreciated here.
>
> Another question is still:
>
>   * does anybody have an idea how to query all internal presence
>     status from Freewitch or maybe how to correct it?
>       o e.g. "sofia_presence_data list number at domain" returns e.g.
>
> status|rpid|user_agent|network_ip|network_port
> unknown|unknown|N510 IP PRO/42.250.00.000.000|xx.xxx.xxx.xx|21549
> unknown|unknown|Yealink SIP-T41S 66.83.0.35
> 805EC025FDA9|xx.xx.xxx.xxx|20901
>
>
>       * and "sofia_presence_data status number at domain" always returns
>
> unknownunknown
>
>       * Database table "sip_subscriptions" however is fine
>
>
> Best regards
>
> Peter
>
>
> Am 10.03.21 um 18:07 schrieb Guillermo Ruiz Camauer:
>> From your description, it sounds like the DB is not keeping up with
>> the updates FreeSwitch is making.  Have you tried tuning the db? 
>> More memory, faster/more disks?
>>
>> Guillermo
>>
>> On Wed, Mar 10, 2021 at 1:16 PM Peter Steinbach <lists at telefaks.de
>> <mailto:lists at telefaks.de>> wrote:
>>
>>     Hello
>>
>>
>>     we have a Freeswitch installation for a multi tenant environment.
>>     We have extensively tested our Freeswitch for all call scenarios
>>     and all worked fine. This is the good news.
>>
>>     However, under higher load (>250 Channels and  >6000
>>     Subscriptions), presence does not seem to work reliably. I've
>>     found some ealier posts on this issue, which seem to lead to the
>>     following 2 solutions
>>
>>       * use PostgreSQL (we use Mariadb via ODBC, also tested
>>         mod_mariadb, which made things worse)
>>       * Move presence handling to Kamailio
>>
>>     As your environment is based on MySQL, we do not want to move to
>>     PostgreSQL without knowing, whether this will improve the situation.
>>
>>     So far we are catching events via ESL or even grepping the
>>     network and correct the status of presence informatons sent to
>>     the phone. However we discover, that even if we send corrected
>>     PRESENCE_IN via event socket, our Freeswitch keeps on sending the
>>     wrong BLF information afterwards to the phone. Means BLFs are
>>     blinking or in state red event if the watched phone is not in a
>>     call. So at present we are grepping all presence informations on
>>     the network, crosscheck this with the channels table and resend
>>     the corrected BLF status via event_socket if needed. But still
>>     this is not sufficiant.
>>
>>     So I am now asking the community: What is your approach to
>>     overcome this?
>>
>>       * Do newer Freeswitch versions perform better for this
>>         case?(Ours is "FreeSWITCH Version
>>         1.10.5-release+git~20200818T185121Z")
>>       * which work have you done to overcome this?
>>       * does anybody have an idea how to query all internal presence
>>         status from Freewitch or maybe how to correct it?
>>
>>     Thank you in advance. Any help is appreciated.
>>
>>     Peter
>>
>>     _________________________________________________________________________
>>
>>     The FreeSWITCH project is sponsored by SignalWire
>>     https://signalwire.com
>>     Enhance your FreeSWITCH install with disruptive priced SMS and
>>     PSTN services.
>>     Build your next product on our scalable cloud platform.
>>
>>     Join our online community to chat in real time
>>     https://signalwire.community
>>
>>     Professional FreeSWITCH Services
>>     sales at freeswitch.com <mailto:sales at freeswitch.com>
>>     https://freeswitch.com
>>
>>     Official FreeSWITCH Sites
>>     https://freeswitch.com/oss
>>     https://freeswitch.org/confluence
>>     https://cluecon.com
>>
>>     FreeSWITCH-users mailing list
>>     FreeSWITCH-users at lists.freeswitch.org
>>     <mailto:FreeSWITCH-users at lists.freeswitch.org>
>>     http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>     UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>     https://freeswitch.com
>>
>>
>>
>> -- 
>> Guillermo Ruiz Camauer
>>
>> _________________________________________________________________________
>>
>> The FreeSWITCH project is sponsored by SignalWire https://signalwire.com
>> Enhance your FreeSWITCH install with disruptive priced SMS and PSTN services.
>> Build your next product on our scalable cloud platform.
>>
>> Join our online community to chat in real time https://signalwire.community
>>
>> Professional FreeSWITCH Services
>> sales at freeswitch.com
>> https://freeswitch.com
>>
>> Official FreeSWITCH Sites
>> https://freeswitch.com/oss
>> https://freeswitch.org/confluence
>> https://cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> https://freeswitch.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20210311/bad8bc0b/attachment-0001.html>


More information about the FreeSWITCH-users mailing list