[rrd-users] rrdtool, python and threads

paul paul at subsignal.org
Sat Apr 26 16:31:37 CEST 2008


Yiannis Vavouranakis schrieb:
> Hello!
> 
>  
> 
> I'm completely new to rrdtool AND mailing lists, so please bear with me.
> 
>  
> 
> Since I don't know whether this has been answered before, and I don't know
> how (or if) I can search the mailing list archives, I'm posting a question. 
> 
>  
> 
> Here's my situation:
> 
>  
> 
> I have a series of resources I'm monitoring (nothing to do with traffic
> etc). I've already figured out what DS and RRA I need. I'm planning on
> updating the relative RRDatabases (1 file per resource) via a python script.
> So far, I've created a bash script that calls the same python script over
> and over again with different command line arguments each time, so that I
> collect data from each resource, i.e. my bash script is like this:
> 
>  
> 
> #!/bin/bash
> 
> python get_the_resource.py resource1
> 
> python get_the_resource.py resource2
> 
> python get_the_resource.py resource3
> 
> python get_the_resource.py resource4
> 
> .
> 
>  
> 
> The python script itself is quite I/O intensive: The whole bash script takes
> about 15 seconds to run for 6 resources monitored. I've also tried one
> single resource (i.e. running one of the above lines on its own) and saw
> that it took consistently about 2 seconds, most of which was used up merely
> for fetching data from the web.
> 
>  
> 
> So I'm guessing that if I make a threaded python script that sends each
> request in its own thread, I'll have a more effective program.
I'd just use the main thread to update the rrd. Use worker threads to 
fetch the data and pass it to your main thread via a queue. This way 
only one thread has the rrd opened.

hth
  Paul





More information about the rrd-users mailing list