>>> Michael Schwartzkopff <[email protected]> schrieb am 20.11.2018 um 08:41 in >>> Nachricht <[email protected]>: > Am 20.11.18 um 08:35 schrieb Bernd: >> Am 2018-11-20 08:06, schrieb Ulrich Windl: >>>>>> Bernd <[email protected]> schrieb am 20.11.2018 um 07:21 in >>>>>> Nachricht >>> <[email protected]>: >>>> Hi, >>>> >>>> I'd like to run a certain bunch of cronjobs from time to time on the >>>> cluster node (four node cluster) that has the lowest load of all four >>>> nodes. >>>> >>>> The parameters wanted for this system yet to build are >>>> >>>> * automatic placement on one of the four nodes (i.e., that with the >>>> lowest load) >>>> >>>> * in case a node fails, automatically removed from the cluster >>>> >>>> * it must only exist a single entity of the cronjob entity running >>>> >>>> so this really screams for pacemakter being used as foundation. >>>> >>>> However, I'm not sure how to implement the "put onto node with least >>>> load" part. I was thinking to use Node Attributes for that, but I >>>> didn't >>>> find any solution "out of the box" for this. Furthermore, as load is a >>>> highly volatile value, how can one make sure that all cronjobs are run >>>> to the end without being moved to a node that possibly meanwhile got a >>>> lower load than the one executing the jobs? >>> >>> Hi! >>> >>> Actually I think the last one is the easiest (assuming the cron jobs >>> do not need any resources that are moved): Once a cron job is started, >>> it will run until it ends, whether it's crontab has been moved or not. >>> >>> Despite of that I think cluster software is not ideal when you >>> actually need load-balancing software. >>> >>> Regards, >>> Ulrich >> >> The only resource(s) existing would be the cron "runner". >> >> The point about load balancing is true, yes... so, any idea what to >> use instead? Is there already a tool or framework for solving a >> problem like this available or do I have to start from scratch? Not >> that I'd be too lazy, but what's the use of reinventing the wheel >> repeatedly...? ;) >> >> Regards, >> >> Bernd >> _______________________________________________ >> Users mailing list: [email protected] >> https://lists.clusterlabs.org/mailman/listinfo/users >> >> Project Home: http://www.clusterlabs.org >> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf >> Bugs: http://bugs.clusterlabs.org > > > hi, > > > I solved this problem years ago. I used the utilization attribute. But > you can use any attribute. You have to write an agent that measures the > CPU load every X minutes and updates the attribute. Now you just have > to add a location constraint, that starts the resource on the node with > the "best" attribute value. The "best" could be lowest CPU usage or most > free RAM or whatever you want. > > > The disadvantage of this solution is that the cluster (i.e. pacemaker) > has to recalculate the scores every time you update your attribute. That > causes additional load. If you have many resources the interdepend that > additional load may be not negligible.
Hi! Question on this: Is the cluster clever to check only updates of attributes that some rule actually uses, or does it re-evaluate everything when any attribute changed? Regards, Ulrich _______________________________________________ Users mailing list: [email protected] https://lists.clusterlabs.org/mailman/listinfo/users Project Home: http://www.clusterlabs.org Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf Bugs: http://bugs.clusterlabs.org
