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