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.

    Copy
    3 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 the DSSErrors.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:

  1. Stop the Intelligence Server if it is running.
  2. Using the superuser privilege (e.g., with sudo command), create a new configuration file. MicroStrategy recommends that you use the name mstr-priority.conf under the /etc/security/limits.d folder.
  3. Add the following entries to the configuration file:

    Copy
    mstr  hard  nice  0
    mstr  soft  nice  0
  4. Save the configuration file.
  5. 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 sure mstr user is used to reconnect.
  6. Verify the setting by executing ulimit -e and confirm that the returned value is 20, or higher.
  7. Restart the Intelligence Server.
  8. Check the DSSErrors.log to verify that there is no error message regarding the nice 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 an mstr 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:

    Copy
    DefaultLimitNICE=20

    To apply the setting, run systemctl daemon-reexec and restart your VNC session, such as using a systemctl 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 of 20, or higher. In this case, please review the available limit settings for your specific Linux distribution.