Back to Knowledege base

Understanding and Configuring User Priority Ranges

How to control what job priorities users can set

Understanding Job Priorities

Job priorities determine execution order when multiple jobs are ready to run:

  • Priority range: 1 to 255
  • Higher number = higher priority
  • Jobs with higher priority start first when resources available

User Priority Settings

Each user has three priority parameters:

Default priority : Assigned to new jobs unless user specifies otherwise

Minimum priority : Lowest priority user can set

Maximum priority : Highest priority user can set

Normal Configuration

System defaults (installed):

Default: 150
Minimum: 100
Maximum: 200

Standard user:

Default: 150
Minimum: 100
Maximum: 200

User can create jobs with priorities 100-200, defaults to 150.

Viewing User Priorities

In btuser:

bash

btuser
# Shows user list with priorities

Display shows:

User    Group   Dft Min Max  Maxll Totll Spcll Privileges
jsmith  staff   150 100 200  1000  10000 1000  CR Cdft

Command line:

bash

# View specific user
btuser -l jsmith

# View all users
btulist

Setting User Priorities

Requires: Write admin file privilege

In btuser:

  1. Navigate to user
  2. Press d (default priority)
  3. Enter value, press Enter
  4. Press l (lower/minimum priority)
  5. Enter value, press Enter
  6. Press u (upper/maximum priority)
  7. Enter value, press Enter

Command line:

bash

# Set default priority
btuchange -u jsmith -d 175

# Set minimum priority
btuchange -u jsmith -l 110

# Set maximum priority
btuchange -u jsmith -m 190

Special Configurations

Force User to Specify Priority

Default: 50 (below minimum)
Minimum: 100
Maximum: 200

User must always specify priority - no default available.

Or:

Default: 250 (above maximum)
Minimum: 100
Maximum: 200

Same effect - forces explicit priority specification.

Use case:

Critical production environment where priorities must be deliberate.

Prevent User from Submitting Jobs

Minimum: 200
Maximum: 100

Min > Max makes submission impossible.

Better approach:

Remove Create entry privilege instead:

bash

btuchange -u jsmith -n CR

More explicit and clear.

High Priority User

Default: 180
Minimum: 150
Maximum: 230

User's jobs prioritized over standard users.

Use case:

Administrator, urgent production jobs, time-critical processing.

Low Priority User

Default: 120
Minimum: 100
Maximum: 140

User's jobs run after higher priority work.

Use case:

Background processing, non-urgent batch work, development/testing.

Fixed Priority

Default: 150
Minimum: 150
Maximum: 150

User can only submit jobs at priority 150.

Use case:

Simplified management, prevent priority manipulation.

System Default Priorities

Set defaults for new users:

In btuser:

  1. Press D (capital - system default default)
  2. Enter default priority
  3. Press L (capital - system default minimum)
  4. Enter minimum priority
  5. Press U (capital - system default maximum)
  6. Enter maximum priority

Changes apply to:

  • Users added to system after this point
  • Doesn't affect existing users unless explicitly copied

Apply defaults to existing users:

In btuser:

  • Navigate to user, press a (lowercase) - copy to that user only
  • Press A (capital) - copy to all users (confirms first)

Warning: A (all users) overwrites everyone's priority settings. Use carefully.

Priority Strategy Examples

Production Environment

Tiers:

Critical: 180-220
Production: 120-180
Development: 100-140
Background: 80-120

Setup:

bash

# Critical users
btuchange -u prod_ops -d 200 -l 180 -m 220

# Production users
btuchange -u app_team -d 150 -l 120 -m 180

# Developers
btuchange -u dev_team -d 120 -l 100 -m 140

# Background processing
btuchange -u batch_user -d 100 -l 80 -m 120

Result:

Clear separation between job types. Critical jobs always run first, background jobs run when nothing else waiting.

Shared Resource Environment

Equal access:

All users: Default 150, Min 100, Max 200

All users have same priority range. Fair scheduling.

Setup:

bash

# Set system defaults
# In btuser: D=150, L=100, U=200

# Apply to all users
# In btuser: Press 'A'

Time-Critical Processing

Designate urgent job users:

Urgent: Default 200, Min 180, Max 250
Normal: Default 150, Min 100, Max 180

Urgent users can override normal processing when needed.

Setup:

bash

# Urgent processing team
btuchange -u urgent_team -d 200 -l 180 -m 250

# Everyone else stays at normal defaults

Priority Enforcement

Users restricted to their range:

bash

# User jsmith has min=100, max=200

# Submitting with priority 90
btr -p 90 script.sh
# Error: Priority below minimum

# Submitting with priority 210
btr -p 210 script.sh  
# Error: Priority above maximum

# Submitting with priority 150
btr -p 150 script.sh
# Success

Changing existing job:

bash

# User tries to set priority outside range
btjchange -p 250 15033
# Error: Priority exceeds maximum

Monitoring Priorities

View job queue with priorities:

bash

# Command line
btjlist | sort -k5 -n -r

# In btq
# Priority column visible, sorted by priority

Check who's using high priorities:

bash

# Jobs with priority > 180
btjlist | awk '$5 > 180 {print $0}'

Audit user priority usage:

bash

# List users by priority ranges
btulist | sort -k4 -n

Best Practices

Use meaningful ranges:

Create gaps between tiers (100-140, 150-180, 190-220) - makes separation clear.

Document priority levels:

Maintain written policy on what priorities mean:

100-140: Background, non-urgent
150-180: Normal production
190-220: High priority, time-critical

Review regularly:

Audit user priorities quarterly. Adjust as needed.

Start conservative:

Begin with standard defaults (100-200). Expand ranges only when needed.

Consider load levels first:

Use load levels to control resource usage, priorities for execution order.

Avoid too many tiers:

3-5 priority levels sufficient for most environments. More creates confusion.

Educate users:

Explain priority system so users choose appropriately.

Monitor abuse:

Watch for users always submitting at maximum priority.

Understanding Modes on Jobs and Variables
Fine-grained access control for batch resources