cancel
Showing results for 
Search instead for 
Did you mean: 

How does max_concurrency activate new job worker?

0 Kudos
313

In SAP note 2222250, there is an explaination regarding parameter "max_concurrency" like this:

"If each active job worker currently consumes less than 100 % CPU, more job workers than the max_concurrency value can be activated. The defined number of logical CPUs may be exceeded if the active job workers increase their CPU consumption over time."

Here are what I don't understand:

1.What does "less than 100 % CPU" mean?

2.Maybe each job worker consumes less than 100% CPU, but what about the total? If the sum of the consumption is reaching 100%, will the system still activate new job worker?

3.And what is "The defined number of logical CPUs"? Is it the value we configure in max_concurrency?

I know that SAP does not suggest us to modify this parameter and I do not intend to do so. I'm just curious about the statement I quoted above.

Thanks.

Accepted Solutions (0)

Answers (1)

Answers (1)

simon25
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hello Ying,

'1.What does "less than 100 % CPU" mean?'

So the User CPU (HANA process consumers) combined with the System CPU (Operating system processes also consume CPU outside of the HANA process)

'2.Maybe each job worker consumes less than 100% CPU, but what about the total? If the sum of the consumption is reaching 100%, will the system still activate new job worker?'

No the FREE_WORKER_COUNT will likely go to 0 and the number of concurrently running threads will remain static according to the number of cpu_cores on the system.

Concurrency controls and worker threads are explained further in M_JOBEXECUTORS

MAX_CONCURRENCY

Displays the maximum number of concurrently running worker threads.

The job executor keeps MAX_CONCURRENCY worker threads busy. As a result, more worker threads are started if some worker threads are in a wait state for some time. Even if these additional worker threads are terminated, some of them are kept for later use and counted in PARKED_WORKER_COUNT.

TOTAL_WORKER_COUNT

Displays the total number of worker threads, including one extra worker thread for emergency diagnostic purposes.

PARKED_WORKER_COUNT

Displays the number of parked worker threads.

FREE_WORKER_COUNT

Displays the total number of worker threads that are idle and may immediately take up a job to work on.

'3.And what is "The defined number of logical CPUs"? Is it the value we configure in max_concurrency?'

These are the total number of cpu cores available on the physical server and to the HANA process and can be determined by checking the number of "cpu_threads" as per M_HOST_INFORMATION view

Kind Regards

Simon