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仍然可以启动。为了验证不正确
niceIntelligence 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 发行版的可用限制设置。
