On Mittwoch, 20. Mai 2009, Christian Koch wrote:
This long
startup is also a bit unusual. Sure, it needs to allocates
some memory, and this informations needs to be written to syslog, but
several minutes is too slow. Do you read some database content in
memory on startup, like a huge location table, or a big carrierroute
route tree with several hundreds of MB?
We're connecting to a database, but it includes only a few (about 20)
subscribers, nothing else. We didn't stress test the database
(-connection). Without memdebug kamailio runs fast.
This is strange. Do you log to a remote host, for example with TCP? Or do
you've another big IO load on the machine, that could block the writing of
logs to the disk somehow?
May 20 09:42:20 AmbriaSip1 kamailio: params
(0x81677e0, 96), called
from route_struct.c: mk_action(106)
[..]
May 20 09:42:22 AmbriaSip1 kamailio: params (0x81677e0, 12), returns
address 0x81b4004 frag. 0x81b3fec (size=12) on 1 -th hit
The logfile is full with this kind of messages.
The load of the machine (Xeon dualcore @3GHz) goes up to 2, but using
top we can't see that kamailio is using much CPU time (sometimes about
20%, but not more).
So in which processes is the rest of the CPU time spend?
Most of the time the CPU seems to be idle. Sometimes syslog shows up in
top, but without much CPU time.
Do you think this could be a dual-CPU issue? Perhaps syncing the memory
access between the CPUs is slow?
If you like to see the complete logfile we can post this too.
I'd guess most people run kamailio on a multi-CPU setup nowadays, so i don't
think this is the reason. So what causes the load of 2 during startup, if not
kamailio or syslog?
Henning