The priority of a running session can be controlled at group level either centrally, i.e. with priorities propagated by the master to the workers, or locally, i.e. with priorities defined on each worker. Groups of users can be defined in PROOF via the group file. The priority of a running session is determined by its nice value; XrdProofd implements a mechanism to adapt the nice value according to the priority of the associated group. The priority of the group is defined by the 'priority' directive in the form of a positive, non-normalized number, e.g.
### Priority of group 'tpc' is twice the one of group 'ecal'
property tpc priority 200
property ecal priority 100
The effective priorities are then normalized taking into account the active sessions only, so that a session with low priority will always get all the resources when it is the only one active.
The re-nicing mechanism is switched off by default and needs to be explicitly enabled using the schedopt directive. This directive allows to choose between central and local control and to change the re-nicing range.
The system also allows to read the effective priorities for the groups defined in the group file from a dedicated text file the location of whihc is defined using the 'priorityfile' directive, e.g.
### File from where updated effective priorities are read
priorityfile /pool/cpupriorities.txt
The syntax of this file is 'group=value', e.g.
tpc=10.5
ecal=7.3
In central mode this can be used together with a monitoring system - e.g. based on MonALISA - to update dynamically the effective group priorities taking into account, for example, the usage history.