Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

Priority of queues

SOLVED
Go to solution
Kirsten Knüttel
Frequent Advisor

Priority of queues

Hi,

I've got a generic batch queue with 2 execution queues. Is it possible to set priorities on the execution queues so that one queue is used first and only if this queue is full (perhaps with a job_limit of 20) the other queue is used? Or that you can say in 75% the first queue is used and only in 25% the second queue?

regards,

Kirsten
7 REPLIES
Jan van den Ende
Honored Contributor

Re: Priority of queues

Kirsten,

the priority of the queue is the base-priority of jobs executing IN that queue.

However, AFAIK, if you enumerate the execution queues in the generic queue, my understanding is that jobs go to the first queue in the list, as soon as it is scheduled for execution, IF and ONLY if, that queue still can accommodate another job.
If the first is currently loaded to limit, but the next still can take a load, that one does the job, etc.

So, in summary, precisely what I think you are requesting.

Do some experimenting to make sure.
(a job with just a
$ WAIT 010:0
would be great for this, especially if you SUBMIT with /NAME=

Happy hunting.

Proost.

Have one on me.

jpe
Don't rust yours pelled jacker to fine doll missed aches.
Jan van den Ende
Honored Contributor

Re: Priority of queues

Oops, ugly typo.

Make that

$ WAIT 0:10:0

Proost.

Have one on me.

jpe
Don't rust yours pelled jacker to fine doll missed aches.
Kirsten Knüttel
Frequent Advisor

Re: Priority of queues

Hi Jan,

thank you for your response.
At the moment I have this generic queue with the 2 execution queues. And it seems as if the queue-manager distributes the entries among the 2 execution queues. In both queues I have approx. the same numbers of jobs.
This is why I ask....

Regards,

Kirsten
Fekko Stubbe
Valued Contributor
Solution

Re: Priority of queues

Kirsten
I did some testing. It appears to be like this. The queue manager will select the queue that has the lightest load (after the job would have been submitted). Load is defined as the % of the job_limit.
So if you have queu q1 with job_limit=2 and a queu q2 with job_limit=10, the first 4 jobs wil go to q2. If the first job would have been submttid in q1, this would have been 50% full, but q2 only 10%. Job #5 will go the q1 (still 50%) because q2 would also go to 50%.
To answer your question, the Job_limit's can be used to balance your jobs.
I did this test using vms 8.3
Sheldon Smith
Honored Contributor

Re: Priority of queues

The generic queue was created to handle either banks of similar devices, such as a row of printers, or a set of clustered systems.

In the case of printers, an execution queue (and symbiont process) is created for each, then a generic queue is created consisting of the execution queues. When a job comes in, it is sent to the first available execution queue in the generic queue's list. If jobs come in infrequently, the first printer in the list winds up doing most of the work. Some sites would have a batch job that would rotate the order of the execution queues periodically, so that each printer would have the chance of being the "primary" printer.

In the case of batch queues, an execution queue is created for each, then a generic queue is created consisting of the execution queues. However, with batch queues, there is no symbiont process and no inherent restriction of one active job per queue; depending on the characteristics of the system (processor speed, number of processors, amount of memory, available CPU after priority tasks and interactive users are handled, etc), some systems can easily handle many jobs simultaneously. Regardless, by setting the /JOB_LIMIT, we can control how many will run on a given host.

When a generic queue comes into play, the queue manager looks at the total number of job slots across all the (started) execution queues, then looks at the percentage of job slots contributed by a given system. It then sends the job from the generic queue to the execution queue with the most available slots relative to the overall slot percentage at the time the batch job starts execution. (What Fekko Stubbe observed.) Of course, sending a batch job to a particular execution queue will force the job to that queue's system, where it simply becomes just another job in the queue manager's subsequent queue loading calculations.

So by adjusting the /JOB_LIMIT and the order of the execution queues, you should be able to get the balance you desire.

Note: While I work for Hewlett Packard Enterprise, all of my comments (whether noted or not), are my own and are not any official representation of the company.
----------
If my post was useful, click on my KUDOS! thumb below!
Kirsten Knüttel
Frequent Advisor

Re: Priority of queues

Thank you very much

I must say, I've learned with this question a lot about queues.

Regards,

Kirsten
Kirsten Knüttel
Frequent Advisor

Re: Priority of queues

I think this thread can be closed because I know now what to do with my queues....

Regards,

Kirsten