Configuring cross-queue fair share

About this task

  • FAIRSHARE must be defined in the parent queue. If it is also defined in the queues that are listed in FAIRSHARE_QUEUES, it will be ignored.
  • Cross-queue fair sharing can be defined more than once within lsb.queues. You can define several sets of parent-child queues. However, a queue cannot belong to more than one parent-child set. For example, you can define:
    • In parent queue normal: FAIRSHARE_QUEUES=short
    • In parent queue priority: FAIRSHARE_QUEUES= night owners

    You cannot, however, define night, owners, or priority as children in the normal queue; or normal, short as children in the priority queue; or short, night, owners as parent queues of their own.

  • Cross-queue fair sharing cannot be used with host partition fair sharing. It is part of queue-level fair sharing.

Procedure

  1. Decide to which queues in your cluster cross-queue fair sharing will apply.

    For example, in your cluster you may have the queues normal, priority, short, and you want cross-queue fair sharing to apply only to normal, and short.

  2. Define fair share policies in your parent queue.

    In the queue you want to be the parent, for example normal, define the following in lsb.queues:

    • FAIRSHARE and specify a share assignment for all users of the queue.
    • FAIRSHARE_QUEUES and list child queues to which the defined fair share policy will also apply
    • PRIORITY to indicate the priority of the queue.
    Begin Queue 
    QUEUE_NAME   = queue1 
    PRIORITY     = 30 
    NICE         = 20 
    FAIRSHARE    = USER_SHARES[[user1,100] [default,1]] 
    FAIRSHARE_QUEUES = queue2 queue3 
    DESCRIPTION  = For normal low priority jobs, running only if hosts are lightly loaded. 
    End Queue
  3. In all the child queues listed in FAIRSHARE_QUEUES, define all queue values as desired.
    For example:
    Begin Queue 
    QUEUE_NAME    = queue2 
    PRIORITY      = 40 
    NICE          = 20 
    UJOB_LIMIT    = 4 
    PJOB_LIMIT    = 2 
    End Queue
     
    Begin Queue 
    QUEUE_NAME    = queue3 
    PRIORITY      = 50 
    NICE          = 10 
    PREEMPTION = PREEMPTIVE 
    QJOB_LIMIT    = 10 
    UJOB_LIMIT    = 1 
    PJOB_LIMIT    = 1 
    End Queue