Number of Processors Exceeds the License Maximum Error

Valid for version 10.0.0+.

Problem

The following error appears while executing a plan or a workflow: "Your number of processors (4) exceeds the license maximum (2)".

Solution

Normally, DQC limits the number of processors used automatically. The inability to change CPU affinity for the DQC (or any other Java) process is usually caused by a lack of user permissions.

Solution on Linux

To enable CPU affinity change, the user launching the process must have read/write permissions to the Java temporary folder (specified by the -Djava.security.egd system parameter in the jre/lib/security/java.security file). You can do this in two equivalent ways:

  • Set -Djava.security.egd to a directory with read/write permissions for the user.

  • Make the user an owner of the folder which is identified in the -Djava.security.egd system parameter.

As a one-time workaround, it is possible to limit the usage of cores for a particular process using the taskset -cp <core-list> <pid> command.

In case of ONE add the following parameter in application-MONOLITH.properties file located in \one\conf folder:

dqc.process.javaArgs=-Djava.io.tmpdir=/path to temporary folder/


Make sure that user which is used to start ONE has permissions for that temporary folder. 

Solution on Mac

It is not possible to change CPU affinity on Mac OS because of the system architecture.

To solve the issue on Mac, request a license for a particular Mac computer having the same maximum number of processors as the computer physically has.

Solution on Windows

The issue does not appear on Windows.