Hello,
during the preparations of Kamailio v5.2.0 and the days after, I got the time to run some tests in order to see the differences of running similar SIP routing logic when using native configuration file scripting versus KEMI languages. So far I did it for Lua and Python (v2), hopefully I will find time to run also for the rest of supported scripting languages: Python (v3), JavaScript, Ruby, Squrrel and Lua with LuaJIT.
The pleasant surprise was to see that this time, the results of using Python were similar to native scripting and Lua. When I did some basic tests during development of KEMI, using Python seemed slower.
More details about how tests were performed, the config files/scripts, used tools and results were published in a wiki page:
- https://www.kamailio.org/wiki/kemi/performance-tests/5.2.x
A news article with further details is on kamailio website:
- https://www.kamailio.org/w/2018/12/performance-tests-for-kemi-scripting-lang...
Should anyhow of you have some time to run the tests in own environment and share the results (on sr-users mailing list), it would be appreciated and would help to validate the tests and discover if I forgot something in any of the configs. Note that the goal of the tests is not measuring the capacity of Kamailio in your environment, but see the differences between using different scripting languages in the same environment (so you can do the tests on raspberry pi, if you like).
I would also be interested in knowing if you are using Kamailio with KEMI or you are planning to, if yes, which scripting language. If already doing it, is already in production? These are useful to plan where to allocate developer resources in the future...
And to start, I am running Kamailio with Lua (4 instances) and Python (1) scripting in production deployments, with very good results so far.
Cheers, Daniel