Do you run with high debug value (lot of log messages)? Because I don't get similar results to yours. Maybe you can share full kamailio.cfg and lua script for both cases.

Cheers,
Daniel

On 12.11.19 22:11, GG GG wrote:
Hello,

I removed KSR.x.exit() and I got same results for cpu usage and Recv-Q.

On Tue, Nov 12, 2019 at 3:56 PM Daniel-Constantin Mierla <miconda@gmail.com> wrote:

Hello,

can you remove the KSR.x.exit() and test again? It will be the same effect from sip routing point of view, just to see what is the result.

Because Lua 'exit' cannot be used, KSR.x.exit() is a workaround relying on error/exception handling with string comparison that I did.

However, overall KSR.x.exit() alone has an insignificant effect on a production configuration, based on the tests I did for kamailio 5.2, you can look for more at:

  - https://www.kamailio.org/wiki/kemi/performance-tests/5.2.x

Cheers,
Daniel

On 12.11.19 21:28, GG GG wrote:
Hi Daniel,

For lua example, it's just an error when writing my email... in my config file I have KSR.x.exit();
I have not tested a more complex config, but I'm curious about kemi framework and how it works. So before anything else I made a simple test to know the cpu overhead.
For this test, I noticed that the Recv-Q of kamailio remains high with kemi/lua, and with the native one remains to 0, with children=1 of course.
Next step, is to use a more complex config file.

On Tue, Nov 12, 2019 at 3:00 PM Daniel-Constantin Mierla <miconda@gmail.com> wrote:

Hello,

is it really just 'exit' in the ksr_core_received()? Because that should shut down kamailio.

Anyhow, practically with the examples here, you test the difference between looking up a function and doing exit in native kamailio.cfg and lua script, which is really marginal comparing with the rest of configuration file in a usual production deployment. Have you tested with a more complex set of actions/functions?

Cheers,
Daniel

On 12.11.19 17:36, GG GG wrote:
Hi!

I just made a simple test performance between native script and kemi/lua with the event_route[core:msg-received] callback.

# lua script children=1 cpu.process=100%
function ksr_core_received()
  exit;
end

# native script children=1 cpu.process=70%
event_route[core:msg-received] {
  exit;
}

# tested with udp 5060, 1000 Mbits/sec
iperf -c 127.0.0.1 -p 5060 -u -b1000m

I don't know if it's normal and what we should expect from kemi, but I would like to share this with you. Maybe someone could confirm the performance difference.

Have a good day !

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com