Strategy ONE
权限错误
本节提供有关 Linux 环境中权限错误的故障排除信息。
错误的“nice”值限制
为了提高高 CPU 负载下的性能,Intelligence Server 会优先执行时间关键型作业(例如交互式仪表板执行),而不是后台请求(例如智能下载)。为了实现这样的 工作优先级 机制下,执行交互式作业的线程可以占用更大块的 CPU 时间。等效地,后台请求的线程被分配了较小的 CPU 时间块。
在 Linux 操作系统中,线程的 CPU 块大小由其 nice
值,它具有 与 CPU 时间(和优先级)成反比。为了以正确的优先级执行每个传入的作业或请求,Intelligence Server 从池中选择一个或多个线程,动态地为线程分配正确的 nice
值来执行作业或请求,然后重置 nice
值为默认值 0
,然后将线程返回到池中。这种动态 nice
值分配,尤其是重置为 0
增加后台请求线程的 nice 值(降低优先级)后,需要配置 用户级 限制 nice
。
为了减轻部署的复杂性, MicroStrategy 安装程序会自动配置 nice
值,只要它是由一个 root
用户。否则,如果安装程序由非root
用户 nice
无法配置限制并显示以下消息。
-
这 MicroStrategy 安装程序将在安装过程结束时显示以下任意消息。
-
当安装程序从命令行运行时,类似的消息会显示到标准输出。另一方面,如果安装程序以静默模式运行,则会将以下条目添加到 安装日志 文件。
复制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 -
尽管出现上述错误信息,安装完成后Intelligence Server仍然可以启动。为了验证不正确
nice
Intelligence Server 运行时的限制,打开DSSErrors.log
文件并搜索以下条目:复制... [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".
复制... [Kernel][Info] ... The job prioritization feature is disabled.
要解决此问题,您必须配置最大 nice
限制,可以使用 ulimit -e
命令,直到正确的值 20
或更高,则返回。配置并检查 nice
限制,请参考以下步骤:
- 如果 Intelligence Server 正在运行,请停止它。
- 使用超级用户权限(例如
sudo
命令),创建新的配置文件。 MicroStrategy 建议您使用名称mstr-priority.conf
在下面/etc/security/limits.d
文件夹。 -
将以下条目添加到配置文件中:
复制mstr hard nice 0
mstr soft nice 0 - 保存配置文件。
- 重新启动现有会话以应用新的限制。使用 SSH 时,您可以简单地断开连接并重新连接到新会话。使用 VNC 时,您可以重新启动服务,例如使用
systemctl restart vncserver@:1.service
命令,然后重新连接到会话。在这两种情况下,请确保mstr
用户用于重新连接。 - 通过执行来验证设置
ulimit -e
并确认返回值是20
, 或更高。 - 重启 Intelligence Server。
- 检查
DSSErrors.log
确认没有关于nice
限制,并且作业优先级已启用。
上述设置仅修改最大 nice
价值 mstr
用户,并且不应影响其他用户。您应该注意以下两种特殊情况:
- 您必须更换
mstr
使用上面步骤中将运行 Intelligence Server 的用户名。默认情况下, MicroStrategy 安装程序创建一个mstr
用户,但您可以在期间选择另一个用户或 安装后。 -
通过使用以下方式启动的 VNC 会话运行 Intelligence Server 时
systemd
,步骤 6 可能不会返回正确的值,20
, 由于此 已知的 Linux 问题。为了解决此问题,请将以下设置添加到 /etc/systemd/user.conf
和/etc/systemd/system.conf
:复制DefaultLimitNICE=20
要应用设置,请运行
systemctl daemon-reexec
并重新启动 VNC 会话,例如使用systemctl restart vncserver@:1.service
命令。或者,您可以重新启动机器。 - 你的 Linux 计算机可能具有其他用户或系统级限制设置,以防止
ulimit -e
返回正确的值20
, 或更高。在这种情况下,请检查特定 Linux 发行版的可用限制设置。