Configure cross-queue fairshare

About this task

  • FAIRSHARE must be defined in the master queue. If it is also defined in the queues that are listed in FAIRSHARE_QUEUES, it will be ignored.

  • Cross-queue fairshare can be defined more than once within lsb.queues. You can define several sets of master-slave queues. However, a queue cannot belong to more than one master-slave set. For example, you can define:

    • In master queue normal: FAIRSHARE_QUEUES=short

    • In master queue priority: FAIRSHARE_QUEUES= night owners

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

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

Procedure

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

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

  2. Define fairshare policies in your master queue.

    In the queue you want to be the master, 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 slave queues to which the defined fairshare 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 slave 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