Maybe not the nicest solution, but you can use (from inside the routing script) the jsonrpc_exec() to get stats and grab the shmem usage, and build your logic there... if this do that...



On Sun, Mar 1, 2020 at 12:54 Juha Heinanen <jh@tutpro.com> wrote:
John Petrini writes:

> The times we've seen this is when transactions are waiting on something so
> they pile up consuming shared memory. Do you have any database lookups or
> calls out to external services or scripts?

John,

Thanks for your reply.  Yes, there are MySQL operations both during
request/reply processing and also accounting to db.  I would assume that
any problems with those should show up in /var/log/mysql/error.log.

> Long timeouts can also contribute if something stops responding because
> transactions are waiting for a long timeout to expire.

There is quite long "fr_inv_timer" value, that could cause problems is
lots of INVITEs are ringing at the same time.

> It's typically a balance between setting reasonable timeouts and allocating
> enough shm. In addition we implemented some watcher scripts that monitor
> shm and will set gflags to disable non-critical external calls beyond a
> certain threshold as well as send us an alert.

I also created an external script to watch shm memory usage.  I would
have liked K to watch itself, but could not find pseudo variables
corresponding to core.shmmem entries.  Do they exist?

-- Juha

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users