Dynamic priority group based on reported server load
Hi,
I am trying to pull together a design proposal on how to achieve dynamic prioritization for pool members based on a numeric string value (load) retrieved from a healthcheck page on pool member.
The healthcheck page containing said value looks something like this:
Load: 80%
The higher the Load value the lower the priority of the pool member - the objective of the solution is to prioritize pool members with the lower load
In principle i believe this could be achieved by:
1. Retrieving the value for "Load" via a shell script run as a cron job (not sure a monitor would be needed here or be a good idea - suggestions welcome)
2. Manipulate these values for "Load" so that a high load value corresponds to a low priority group value - store these value away in a data array *somewhere* (again suggestions welcome)
3. Use the LocalLBPool.set_member_priority iControl call to programmatically alter the member priority group to reflect the current load of the pool member.
Questions I have in regards :
Does anyone have any views or suggestions on whether this is the best way to achive this or is able to offer any advice on how to otherwise best tackle this.
With regards to step 2 -- what's the best way to store the values retrieved by the shell script in step one so to make them accessible to icontrol?
Hope that's clear i can explain in more detail if needs be.
Thanks,
Claud