Dear Adrian, Am 18.06.19 um 01:15 schrieb Adrian Sevcenco: >>> I'd be willing to fix this ot just use the kernel interface from procfs: /proc/net/dev >> That would be greatly appreciated :-) > well, i had a head-start :) > https://github.com/adriansev/bin-scripts/blob/master/cms_monPerf > > but i really do no like the vmstat usage, i will change to use something directly like /proc/stat > > also i do not know what is supposed to be the PGIO > > Any comments/ideas/feedback about it? that's certainly more radical than the minimalistic change I wanted to do - it's a full rewrite. But I must say it's much more readable, and seems more portable! So my personal feeling is that this is a better way to go than to improve on the old version, indeed - if Andy is fine with it. I have a few nits, though: - There are many calls to external tools which could in some places be simplified. E.g. the content of "${IFACE_DIR}/${iface}/operstate" could be compared against "up" using bash intrinsics instead of firing up "grep", same for the call to "ls" which could be replaced by looping over "${IFACE_DIR}/*" and checking that the string does not end with "/lo" using a bash builtin. Probably also a few of the "bc" calls could be handled using bash builtins. The whole memory-part could be done inside a single awk-call, removing the double awk and bc. - The script breaks if ${IFACE_DIR}/${iface}/speed can not be read, or returns a bad value. For example, in a VM with a virtio-net interface, you'll get: # cat /sys/class/net/eth0/speed cat: /sys/class/net/eth0/speed: Invalid argument I think there are also cases where you could get a "-1". Probably it would be best to fall back to 1000 in case you get an error code back from "cat" or a negative number to handle such pathologic cases. - It's not (yet) possible to limit the network statistics to a single interface. An administrator may want only a single interface to be considered (if XRootD does not serve all interfaces). I have adressed most of these things (apart from the last) in: https://github.com/adriansev/bin-scripts/pull/1 Also, the dependency on "bc" is removed, which may not be present on most people's minimal installations. It's not really tested yet, and it also does not handle speed "-1" gracefully yet - and I am sure there are other corner cases. Maybe I'll have more time to look at it later this week. Finally, I have three things I am unsure about: - The original script was running in an endless loop, echoing output for consumption. I think this is also what needs to be done here. Of course, CPU count etc. do not need to be rechecked then ;-). But an interval parameter should probably be accepted to define the monitoring frequency. - The original script (optionally) supported writing the performance values to a shared memory segment. I don't know if this is used by XRootD in any way? Probably not. - PGIO was also not provided by the original script, so I believe it's not really needed. Cheers and thanks, Oliver > > Thanks! > Adrian > > > ######################################################################## > Use REPLY-ALL to reply to list > > To unsubscribe from the XROOTD-L list, click the following link: > https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-L list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1