In order to balance users CPU consumption on a shared computing server, I would think it very useful if one could:
- set the nice level for all processes of a user
- furthermore, adapt this level in realtime
- furthermore, adapt this level not only to future, but also to running jobs
- furthermore, derive this level from the user's current overall CPU usage
The idea is that a user can call as many jobs as he likes. But if there are other users, his priority will drop depending on how much he is asking for. So A can use all 32 cores at a time. Then another user B comes and starts only 1 job. Now A should get a lower priority than B. Then C comes and starts 8 jobs. He should now have a priority between A and B. However the priority should actually not be based on the number of processes but on their overall CPU demand - if that could be determined at all.
I guess this might be the same as attributing the same share of CPU to all active users as long as they make use of it and distribute the rest to all that want more.
Do you think this would be possible in any way?
Do you think it makes sense at all?