Hello list,
I have a custom made module which uses a timer to monitor some statuses in a period of 1 second. Inside the function there's a loop that iterates over a table that can contain several hundreds of items and using each of them to perform some arithmetical operations.
Under certain conditions, the number of items can grow to a few thousands in really exceptional cases and I believe this situation is causing Kamailio's slow timer process to consume more than 90% of CPU hanging up the other group of processes.
My questions are:
- What is the best way to perform a repetitive task such as a loop in a timely basis taking in consideration a precision of at least 5 seconds? I'm currently registering a function using register_timer() call.
- Can a loop that takes more than 1 second to complete be causing this extremely high CPU consumption?
Below is a copy of the top command when the event occurred:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22969 root 20 0 2140m 16m 14m R 98.8 0.1 7:22.03 kamailio Thanks in advance,
--
Carlos
+595981146623