Hi SmokePing Users, Over the last days I have been working on the re-designing the code for running smokeping probes. My idea is go with an event based design for version 3, this means that smokeping will be able to run more probes, more efficiently while using less resources.
SmokePing probes usually spend most of their time waiting for some latency measurment task to complete. From a performance point of view this is rather bad, especially if multiple probes are doing this waiting one after the other. Often, the probe starts some external command which in turn performs some measurement and then retuns with the result. Or some perl code does some request over the network and waits for it to complete. In either case, the probe has to wait for the result. Current SmokePing aproaches this performance probelm by forking probes into multiple instances which then run in parallel. In the new event based design, this idea is taken much further. With the help of the AnyEvent perl module it is possible to launch an external program or even some perl code and attach a sub routine to this task which gets called once the external program completes or the forked perl code returns. So the main smokeping probe loop can lanuch many external probing tasks in parallel while automatically processing their return data once it becomes available. The task of writing the probe measurments out to rrd files will also slow the main probing loop, to solve this an external rrd writer process will do the actual updateing of rrd files, leaving the main loop free to lanuch probes. If too many updates are hitting the rrd writer, successive updates to the same rrd file will be automatically combined, this improving the write performance. stay tuned, soon there will be some initial code for this probe runner loop. cheers tobi -- Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland http://it.oetiker.ch t...@oetiker.ch ++41 62 775 9902 / sb: -9900 _______________________________________________ smokeping-users mailing list smokeping-users@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/smokeping-users