Custom "default" load sensors & multiple sensor scripts
Supporting the contention that a significant amount of useful Grid Engine admin/usage information is often found outside of the formal documentation:
I learned two new things today while working on a load sensor project. The information was recently discussed on the mailing list and is hidden in plain view within the manpage but you certainly will not see it mentioned in the official documentation.
Lessons learned:
- The load_sensor parameter can accept a comma-separated list of script(s). Assuming SGE would only accept a single script path for that parameter I’ve often written load sensor scripts that called multiple other scripts.
- If you drop an executable program named qloadsensor into the SGE binary path on an execution host, it will be run as a load sensor!
The relevant excerpts from the sge_conf manpage are here:
A comma separated list of executable shell script paths or programs to be started by sge_execd(8) and to be used in order to retrieve site configurable load information (e.g. free space on a certain disk partition) …
… In addition to the load sensors configured via load_sensor, sge_exec(8) searches for an executable file named qloadsensor in the execution host’s Grid Engine binary directory path. If such a file is found, it is treated like the configurable load sensors defined in load_sensor. This facility is intended for pre-installing a default load sensor.
FlexLM licensing and grid engine - a new HowTo draft
A thread about managing licenses with grid engine got Mark to post a draft version of a new HowTO document he is working on (along with a teaser mention of some other code he has in the works).
The draft document is in perl POD format. Translated html and text versions can be found here:
http://gridengine.info/files/Mark_Olesen-HowTo-Licenses-n1ge.html
http://gridengine.info/files/Mark_Olesen-HowTo-Licenses-n1ge.txt
some Load Sensor tips
1) turning off output stream buffering
By default scripting languages such as Perl and Python have the output stream buffered. If a load sensor is written in one of those languages, buffering needs to be turned off. For example:- in Perl: $|++;
- in python: python -u
2) the suggested sequence of collecting external load
Collecting external load can be slow. A good example is contacting a flexlm server for the number of licenses available.
Charu wrote, “… in any case a good idea is to grab the values *before* the ‘read input’ part. IE, [grab values] –> [read input, check it] –> [echo output] –> [repeat]. In this way, you perform the (potentially) slow step of getting license values during the load report interval, instead of between the read and the echo.”Link to Charu’s mail.

XML Feeds