I have a heavily loaded server where GTM processes appears to hang up when the process halts.
The server is heavily I/O bound. Over 90% of the time the processor is in an iowait state. There is no idle time at all.
There are two GTM processes running. The first is fired off every minute by a cron job and takes about 10 seconds to run. It is inserting data into the database.
The second process is also doing database updates and runs for several hours.
The problem I see is that when the second process is running, then none of the cron jobs ever terminate. After four hours there are typically 350 cron jobs all trying to halt out of GTM. Each process has run to completion but gets stuck at the point that GTM is supposed to halt. If the second process is not running then everything works nicely.
Incidentally, all my GTM processes are run through a C wrapper using the GTM call-in mechanism so this may have a bearing on the problem.
I have another, much more powerful server running the exact same software and processes where I don't see this problem.
Has anyone seen this kind of behaviour before or know of anything that can be done to make it behave more nicely?