MicroStrategy ONE
Permission Errors
This section provides troubleshooting information on permission errors in a Linux environment.
Incorrect "nice" Value Limit
To improve performance under high CPU loads, the Intelligence Server prioritizes the execution of time-critical jobs, such as interactive dashboard execution, over background requests, like Smart Downloads. To achieve such a job prioritization mechanism, the threads that execute interactive jobs are allowed to occupy a larger chunk of CPU time. Equivalently, threads for background requests are assigned with a smaller CPU time chunk.
In the Linux OS, a thread's CPU chunk size is controlled by its nice
value, which has an inverse relation to CPU time (and priority). To execute every incoming job or request with the correct priority, the Intelligence Server picks one or more threads from a pool, dynamically assigns the threads with a correct nice
value to execute the job or request, and then resets the nice
value to the default value of 0
, before returning the threads back to the pool. This dynamic nice
value assignment, especially for resetting to 0
after increasing the nice value (de-prioritization) of background requests' threads, requires the configuration of a user-level limit for nice
.
To ease deployment complexity, the MicroStrategy installer automatically configures the nice
value, as long as it was run by a root
user. Otherwise, if the installer is run by a non-root
user, the nice
limit cannot be configured and the following messages are displayed.
-
The MicroStrategy installer will display any of the following messages below at the end of the installation process.
-
A similar message is displayed to the standard output when the installer is run from command line. On the other hand, if the installer is run in silent mode, the following entries are added into the install.log file.
Copy3 Jun 2020, 11:35:27 AM:SEVERE: Failed to set MicroStrategy Intelligence priority process settings
3 Jun 2020, 11:35:27 AM:SEVERE: Priority process settings for MicroStrategy Intelligence doesn't meet the requirements
3 Jun 2020, 11:35:27 AM:SEVERE: Root privileges are required to configure the nice limit to 0 or lower -
Despite the above error message, the Intelligence Server can still be started after the installation is complete. To verify the incorrect
nice
limits when the Intelligence Server is running, open theDSSErrors.log
file and search for the following entries:Copy... [Kernel][Error] ... The maximum scheduling priority ("nice") returned by "ulimit - e" has a value of %1. It does not satisfy the job prioritization feature's requirement that expects a value of 20 or higher. Please refer to the man page of "ulimit".
Copy... [Kernel][Info] ... The job prioritization feature is disabled.
To fix the problem, you must configure the maximum nice
limit, which can be checked using the ulimit -e
command, until the correct value of 20
, or higher, is returned. To configure and check the nice
limit, refer to the following steps:
- Stop the Intelligence Server if it is running.
- Using the superuser privilege (e.g., with
sudo
command), create a new configuration file. MicroStrategy recommends that you use the namemstr-priority.conf
under the/etc/security/limits.d
folder. -
Add the following entries to the configuration file:
Copymstr hard nice 0
mstr soft nice 0 - Save the configuration file.
- Restart your existing session to apply the new limits. You can simply disconnect from and reconnect to the new session when using SSH. When using VNC, you can restart the service, such as using a
systemctl restart vncserver@:1.service
command, and then reconnect to the session. In both cases, make suremstr
user is used to reconnect. - Verify the setting by executing
ulimit -e
and confirm that the returned value is20
, or higher. - Restart the Intelligence Server.
- Check the
DSSErrors.log
to verify that there is no error message regarding thenice
limit and the job prioritization is enabled.
The settings described above modify only the maximum nice
value for the mstr
user and should not affect other users. You should be aware of the following two special scenarios:
- You must replace
mstr
with the user name that will run the Intelligence Server in the steps above. By default, the MicroStrategy installer creates anmstr
user for this purpose, but you can choose another user during or after the installation. -
When running the Intelligence Server through a VNC session that was started using
systemd
, step 6 may not return the correct value,20
, due to this known Linux issue. To address this issue, add the following setting to /etc/systemd/user.conf
and/etc/systemd/system.conf
:CopyDefaultLimitNICE=20
To apply the setting, run
systemctl daemon-reexec
and restart your VNC session, such as using asystemctl restart vncserver@:1.service
command. Alternatively, you can reboot your machine. - Your Linux machine may have additional user or system-level limit settings that prevent
ulimit -e
from returning the correct value of20
, or higher. In this case, please review the available limit settings for your specific Linux distribution.