On Thu, Feb 23, 2006 at 11:14:52PM -0500, Schwimmer, Eric E *HS wrote:
Right now we are polling ~800 devices with Devmon, and we are running at about 75% load (for a 60 second poll period) using 7 polling nodes. [snip] Most of the load (80-90% of it) is spent running template calculations, which right now is done on a single thread. I thought, earlier on in the design, that most time-intensive portion of the polling cycle was going to be the SNMP data collection portion.
The "template calculations" are where you compare the SNMP data you've collected against the various limits you've setup for each host, I suppose ?
To me, it sounds as if this part of the code ought to be mostly CPU-bound. You're not loading a lot of data from disk. Have you tried looking at some vmstat data while this runs ?
It looks like I'm going to have to farm the template code out to the forked processes, if I want to get any more speed out of this puppy. I've had the idea rolling around in the back of my head for a while now, but I've been very good at ignoring it, as it will involve rewriting a large chunk of code. (Not again!)
If - as I suspect - it is CPU-bound, then splitting up the task on multiple processes running on a single node won't give you any improvement. If you split this onto multiple nodes, it's a different story, of course.
Just some input from a guy who's spent too much time watching how BB spent its time running all of the shell scripts :-)
I have a couple of comments about how Devmon does some things, but I'll take those over to the Devmon list.
Regards, Henrik