[Freeswitch-users] Situation with freeswitch dbh + odbc (mysql) in lua
john.nash778 at gmail.com
Fri Nov 13 17:54:08 MSK 2015
One more observation I see lot of channels with CS_HIBERNATE state as a
result of show channels command.
On Fri, Nov 13, 2015 at 7:06 PM, John Nash <john.nash778 at gmail.com> wrote:
> Thank you for sharing ideas ..
> 1- I have made sure that dbh is released even in cases of query error.
> 2- In mysql processlist I see lot of connections but all in sleep mode.
> My stored procedure is complicated but it has all select statements and I
> run with least possible locking isolation. But I am not really sure on if
> with time or because of some other application stored procedure is taking
> long to to execute hence each new request creating more dbh handles. I am
> also using readtimeout as 10 seconds in odbc.ini so that in case stored
> procedure takes time, i get error and then release handle.
> On Fri, Nov 13, 2015 at 6:49 PM, Florent Krieg <flokrrr at gmail.com> wrote:
>> Hello John,
>> If you are under heavy load, could this be a db issue? Like the db engine
>> taking long to return the data, hence queries are getting queued one after
>> the other and finally reach a few hundreds of it?
>> Or you are right and your Lua script sometimes doesn't release the
>> handler as it just shall... To check this, you could for instance log a
>> debug message before and after doing your db query, and check after a few
>> minutes if you have the equivalent of 'before' and 'after' query
>> messages... If more before than after, then something is happening.
>> You could do a 'show processlist;' on the MySQL cli too to understand
>> what are exactly the few hundreds of open connections.
>> Also, is your stored procedure complicated? I'm not DBA but if it's too
>> tricky, you could imagine to move the load on the Lua processing instead of
>> MySQL. I have the same use cases on my environment and I made sure my MySQL
>> queries are dumb as possible and I take the benefit of Lua to process the
>> data returned.
>> I'm just dropping some ideas that I'm thinking about now. Nothing very
>> precise though (sorry...).
>> 2015-11-13 12:49 GMT+01:00 John Nash <john.nash778 at gmail.com>:
>>> I am calling a lua script from dialplan which does following steps ...
>>> 1- Gets freeswitch dbh handle (odbc mysql)
>>> 2- Runs a mysql stored procedure which returns balance remaining amount
>>> for the subscriber who made call.
>>> 3- Save the amount in session variable and released dbh handle
>>> 4- Play sound files as per output received and saved in step 3
>>> Now upto 200 calls and first 2-3 hours of start all work fine. I can see
>>> in Database that script uses 32 connections approx at a given time (I think
>>> connection pooling works) but suddenly connections start increasing and go
>>> upto 300+ and because of that database stops responding and i have to kill
>>> freeswitch to make production DB responsive again.
>>> I am not sure where and what I should check. Can someone give me
>>> pointers on what I can check?..Or I am doing something fundamentally wrong.
>>> Can there be such a case where lua scripts hang and never release
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org
>>> Official FreeSWITCH Sites
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> Official FreeSWITCH Sites
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
-------------- next part --------------
An HTML attachment was scrubbed...
Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users