跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 系统分析和微调指南 / 内核微调 / 微调 SUSE Linux Enterprise for SAP
适用范围 SUSE Linux Enterprise Server 15 SP3

16 微调 SUSE Linux Enterprise for SAP

本章介绍如何通过 sapconf 准备和微调 SUSE Linux Enterprise Server,以便以最佳方式使用 SAP 应用程序。sapconf 适用于安装了 SAP 应用程序的 SUSE Linux Enterprise 系统。安装了 SUSE Linux Enterprise Server for SAP Applications 的客户应使用 saptune

注意
注意:已去除 sapconf 命令

在 SUSE Linux Enterprise Server 以及 SUSE Linux Enterprise Server 11 和 12 中,sapconf 命令包含在同名的软件包中。

对于 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise Server 15,情况已发生变化:sapconf 命令已从 sapconf 软件包中去除。该软件包仅包含 systemd 服务,不再包含 sapconf 命令行工具,以及 sapconf/tuned 配置文件和 tuned

16.1 使用 sapconf 4 微调 SLE 系统

SUSE Linux Enterprise Server 和 SUSE Linux Enterprise Server for SAP Applications 中提供了 sapconf 软件包。此软件包包含 tuned 配置文件 sapconf。仅使用这一个微调配置文件就能为以下类型的 SAP 应用程序设置建议的参数:SAP NetWeaver、SAP HANA 和基于 SAP HANA 的应用程序。

SUSE® Linux Enterprise Server 12 中的 sapconf4 概览
sapconf4(基于 tuned
  • sap-netweavertuned 配置文件)

  • sap-hanatuned 配置文件)

  • sap-bobjtuned 配置文件)

  • sap-asetuned 配置文件)

SUSE® Linux Enterprise Server 15 中的 sapconf4 概览
sapconf4(基于 tuned

sapconftuned 配置文件)

请注意,如果您之前对系统微调进行了更改,sapconf 配置文件可能会重写这些更改。

sapconf 主要由两个部分组成:

  • 一项 systemd 服务,该服务确保 tuned 和相关服务正在运行并已应用 sapconf 配置文件。

  • tuned 配置文件 sapconf,它使用脚本和配置文件应用所配置的 sapconf 微调参数。

要使用 sapconf,请确保您的系统上已安装 tunedsapconf 软件包。

注意
注意:SUSE Linux Enterprise Server 和 SUSE Linux Enterprise Server 15 SP3 中的统一配置文件

在 SUSE Linux Enterprise Server 以及 SUSE Linux Enterprise Server 15 和更高版本中,只随附了一个 tuned 配置文件 sapconf。它与旧版 SUSE Linux Enterprise Server 中随附的配置文件 sap-hana/sap-netweaver 作用相同。

16.1.1 启用和禁用 sapconf 并查看其状态

安装 sapconf 后,tuned 即会启用,并且 sapconf 配置文件会被激活。但是,如果已启用了另一个 tuned 配置文件,sapconf 就不会启用自身的 tuned 配置文件。

为确保 sapconf 应用所有微调参数,完成安装后请重引导计算机。

您可以按如下所述检查或更改 sapconf 的状态:

  • 要查看 sapconf 服务的状态,请运行以下命令:

    root # systemctl status sapconf

    该服务应显示为 active (exited),因为它只负责启动 tuned,启动后即会退出。

  • 要启动 sapconf 服务,并从而启动 tuned 服务,请运行以下命令:

    root # systemctl start sapconf
  • 如果 sapconf 处于禁用状态,请使用以下命令将其启用并启动:

    root # systemctl enable --now sapconf
  • 要停止 sapconf 服务,并从而停止 tuned 服务,请运行以下命令:

    root # systemctl stop sapconf

    这也会终止 tuned,因此会立即禁用绝大多数优化设置。只有需要重引导系统才能启用/禁用的选项例外。

  • 要禁用 sapconf,请使用以下命令:

    root # systemctl disable sapconf

    如果您未特意自行启用 sapconf 所依赖的任何服务,则此命令还会禁用 sapconf 所使用的大多数微调参数和所有服务。

同样,您可以检查和更改底层服务 tuned 的状态:

  • 要查看 tuned 服务的状态,请运行以下命令:

    root # systemctl status tuned
  • 要查看当前正在使用的 tuned 配置文件,请运行以下命令:

    root # tuned-adm active

    如果此命令返回的当前处于活动状态的配置文件名称不是 sapconf,请启用该配置文件:

    root # tuned-adm profile sapconf
提示
提示:sapconf 依赖的其他服务

除了 sapconf 服务本身以及 tuned 服务以外,sapconf 还依赖于以下两个服务:

  • sysstat,该服务用于收集有关系统活动的数据。

  • uuidd,该服务会生成基于时间的 UUID,即使是在涉及许多处理器核心的设置中,也能保证这些 UUID 是唯一的。这对于 SAP 应用程序而言非常必要。

16.1.2 配置 sapconf4

一般情况下,sapconf 的默认配置已使用 SAP 建议的参数值。但如果您有特殊需求,可以配置该工具以更好地满足这些需求。

sapconf 的配置分为两部分。可通过不同的方式来配置这两个部分:

/usr/lib/tuned/PROFILE/tuned.conf

可以按照过程 16.1 “配置 sapconf4 配置文件”中所述编辑任何遵循此模式的文件。要配置此文件中的参数,请先将其复制到 /etc/tuned 下的自定义配置文件目录 tuned,然后更改文件中的值。如果您在原位置更改该文件,则下次更新 sapconf 软件包时将会丢失所做的更改。

以下过程演示了一个有关如何调整 /usr/lib/tuned/sapconf/tuned.conf 文件的示例。不过,如前所述,对任何配置文件均可执行这些步骤。按以下过程所述配置文件:

过程 16.1︰ 配置 sapconf4 配置文件
  1. 创建一个新的自定义 tuned 配置文件目录,并将 tuned.conf 文件复制到其中:

    root # mkdir /etc/tuned/sapconf
    root # cp /usr/lib/tuned/sapconf/tuned.conf /etc/tuned/sapconf/
  2. 在新复制的 tuned.conf 中,修复对 script.sh 的引用,以使用指向原始配置文件中的脚本的绝对路径:

    script = /usr/lib/tuned/sapconf/script.sh

    不要复制 script.sh,这会造成 sapconf 出现更新兼容性问题。

  3. 编辑 /etc/tuned/sapconf/tuned.conf 中的参数。

每次更新 sapconf 后,请务必将原始配置文件与自定义 tuned.conf 的内容进行比较。

与此文件相关的日志消息将写入 /var/log/tuned/tuned.log 中。

/etc/sysconfig/sapconf

此文件包含 sapconf 的大部分参数。此文件中的参数通过使用上述脚本 /usr/lib/tuned/sapconf/script.sh 来应用。

您可以直接编辑此文件。此文件中的所有参数都会通过注释和对 SAP 说明(可在 https://launchpad.support.sap.com/ 上查看)的引用进行解释。

更新 sapconf 时,系统会尽可能多地保留此文件中的所有自定义参数。但是,有时无法将参数完全传输到新配置文件中。因此,建议在更新后检查以前的自定义配置(在更新期间将转移到 /etc/sysconfig/sapconf.rpmsave)与新版本(位于 /etc/sysconfig/sapconf)之间的差异。

与此文件相关的日志消息将写入 /var/log/sapconf.log 中。

编辑其中的任一文件时,您会发现,某些值已通过行首的 # 字符注释掉。这表示尽管该参数与微调相关,但它没有适当的默认值。

相反,您可以在行首添加 # 字符来注释掉特定参数。但应该避免这种做法,因为这可能会导致 sapconf 无法正常应用配置文件。

要应用编辑的配置,请重启动 sapconf

root # systemctl restart sapconf

确认是否正确应用了某个参数值的方式根据参数的不同而异。因此,以下方法仅用作示例:

例 16.1︰ 检查参数

要确认是否已应用 TCP_SLOW_START 的设置,请执行以下操作:

  • 查看 sapconf 的日志文件,以确定它是否应用了该值。在 /var/log/sapconf.log 中,检查是否存在包含以下文本的行:

    Change net.ipv4.tcp_slow_start_after_idle from 1 to 0

    或者,参数可能在 sapconf 启动之前已正确设置。在这种情况下,sapconf 将不更改其值:

    Leaving net.ipv4.tcp_slow_start_after_idle unchanged at 1
  • 可以在 /proc/sys/net.ipv4.tcp_slow_start_after_idle 中手动配置 TCP_SLOW_START 后面的基础选项。要检查其实际的当前值,请使用以下命令:

    root # sysctl net.ipv4.tcp_slow_start_after_idle

16.1.3 去除 sapconf

要从系统中去除 sapconf,请使用以下命令卸装其软件包:

root # zypper rm sapconf

请注意,执行此操作不会卸装 sapconf 的依赖项,但 sysstattuned 服务将进入禁用状态。如果您仍然需要其中的任一服务,请务必再次启用它。

卸装 sapconf 时不会去除某些参数和文件。有关详细信息,请参见手册页 man 7 sapconf 的“PACKAGE REQUIREMENTS”(软件包要求)部分。

16.1.4 更多信息

以下手册页提供了有关 sapconf 的更多信息:

  • sapconf 所用微调参数的简要概述:man 7 tuned-profiles-sapconf

  • sapconf 设置的所有微调参数的详细说明:man 5 sapconf

  • 有关配置和自定义 sapconf 配置文件的信息:man 7 sapconf

另请参见 https://www.suse.com/c/a-new-sapconf-is-available/ 上的博客系列,其中详细介绍了 sapconf 的更新版本。

16.2 使用 sapconf 5 微调 SLE 系统

SUSE Linux Enterprise Server 和 SUSE Linux Enterprise Server for SAP Applications 中提供了 sapconf 软件包。此软件包可为以下类型的 SAP 应用程序设置建议的参数:SAP NetWeaver、SAP HANA 和基于 SAP HANA 的应用程序。

SUSE® Linux Enterprise Server 12 中的 sapconf5 概览
sapconf5(不包含 tuned
  • sapconf-netweaver(取代了 tuned 配置文件的 sapconf 配置文件)

  • sapconf-hana(取代了 tuned 配置文件的 sapconf 配置文件)

  • sapconf-bobj(取代了 tuned 配置文件的 sapconf 配置文件)

  • sapconf-ase(取代了 tuned 配置文件的 sapconf 配置文件)

SUSE® Linux Enterprise Server 15 中的 sapconf5 概览
sapconf5(不包含 tuned

不再包含配置文件

请注意,如果您之前对系统微调进行了更改,sapconf 可能会重写这些更改。

sapconf 5 随附了一个 systemd 服务,该服务会应用微调并确保相关的服务正在运行。

要使用 sapconf,请确保您的系统上已安装 sapconf 软件包。

注意
注意:SUSE Linux Enterprise Server 和 SUSE Linux Enterprise Server 15 SP3 中不包含配置文件

在 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise Server 15 中,sapconf 不再支持配置文件。

16.2.1 校验 sapconf 设置

sapconf 5.0.2 和更高版本中提供了检查工具 sapconf_check,用于校验是否已正确设置 sapconf。例如:

root # sapconf_check
This is sapconf_check v1.0.
It verifies if sapconf is set up correctly and will give advice to do so.
Please keep in mind:
{{ - This tool does not check, if the tuning itself works correctly.}}
{{ - Follow the hints from top to down to minimize side effects.}}
Checking sapconf
================
[ OK ] sapconf package has version 5.0.2
[ OK ] saptune.service is inactive
[ OK ] saptune.service is disabled
[WARN] tuned.service is enabled/active with profile 'virtual-guest -> Sapconf does not require tuned! Run 'systemctl stop tuned.service', if not needed otherwise.
[FAIL] sapconf.service is inactive -> Run 'systemctl start sapconf.service' to activate the tuning now.
[FAIL] sapconf.service is disabled -> Run 'systemctl enable sapconf.service' to activate sapconf at boot.1 warning(s) have been found.
2 error(s) have been found.
Sapconf will not work properly!

如果 sapconf_check 发现了问题,将会提供有关如何解决问题的提示。该工具不会校验是否已正确微调系统,只会检查 sapconf 是否已正确设置且已启动。

16.2.2 启用和禁用 sapconf 并查看其状态

安装 sapconf 后,将启用 sapconf 服务。

您可以按如下所述检查或更改 sapconf 的状态:

  • 要查看 sapconf 服务的状态,请运行以下命令:

    root # systemctl status sapconf

    该服务应显示为 active (exited)

  • 要启动 sapconf 服务,请运行以下命令:

    root # systemctl start sapconf
  • 如果 sapconf 处于禁用状态,请使用以下命令将其启用并启动:

    root # systemctl enable --now sapconf
  • 要停止 sapconf 服务,请运行以下命令:

    root # systemctl stop sapconf

    此命令将立即禁用绝大多数优化设置。只有需要重引导系统才能启用/禁用的选项例外。

  • 要禁用 sapconf,请使用以下命令:

    root # systemctl disable sapconf

    如果您未特意自行启用 sapconf 所依赖的任何服务,则此命令还会禁用 sapconf 所使用的大多数微调参数和所有服务。

提示
提示:sapconf 依赖的其他服务

除了 sapconf 服务以外,它还依赖于以下两个服务:

  • sysstat,该服务用于收集有关系统活动的数据。

  • uuidd,该服务会生成基于时间的 UUID,即使是在涉及许多处理器核心的设置中,也能保证这些 UUID 是唯一的。这对于 SAP 应用程序而言非常必要。

16.2.3 配置 sapconf5

一般情况下,sapconf 的默认配置已使用 SAP 建议的参数值。但如果您有特殊需求,可以配置该工具以更好地满足这些需求。

您可以在 /etc/sysconfig/sapconf 文件查看 sapconf 的所有参数。您可以直接编辑此文件。此文件中的所有参数都会通过注释和对 SAP 说明(可在 https://launchpad.support.sap.com/ 上查看)的引用进行解释。

更新 sapconf 时,系统会尽可能多地保留此文件中的所有自定义参数。但是,有时无法将参数完全传输到新配置文件中。因此,建议在更新后检查以前的自定义配置(在更新期间将转移到 /etc/sysconfig/sapconf.rpmsave)与新版本(位于 /etc/sysconfig/sapconf)之间的差异。

与此文件相关的日志消息将写入 /var/log/sapconf.log 中。

编辑其中的任一文件时,您会发现,某些值已通过行首的 # 字符注释掉。这表示尽管该参数与微调相关,但它没有适当的默认值。

相反,您可以在行首添加 # 字符来注释掉特定参数。但应该避免这种做法,因为这可能会导致 sapconf 无法正常应用配置文件。

要应用编辑的配置,请重启动 sapconf

root # systemctl restart sapconf

确认是否正确应用了某个参数值的方式根据参数的不同而异。因此,以下方法仅用作示例:

例 16.2︰ 检查参数

要确认是否已应用 TCP_SLOW_START 的设置,请执行以下操作:

  • 查看 sapconf 的日志文件,以确定它是否应用了该值。在 /var/log/sapconf.log 中,检查是否存在包含以下文本的行:

    Change net.ipv4.tcp_slow_start_after_idle from 1 to 0

    或者,参数可能在 sapconf 启动之前已正确设置。在这种情况下,sapconf 将不更改其值:

    Leaving net.ipv4.tcp_slow_start_after_idle unchanged at 1
  • 可以在 /proc/sys/net.ipv4.tcp_slow_start_after_idle 中手动配置 TCP_SLOW_START 后面的基础选项。要检查其实际的当前值,请使用以下命令:

    root # sysctl net.ipv4.tcp_slow_start_after_idle

16.2.4 去除 sapconf

要从系统中去除 sapconf,请使用以下命令卸装其软件包:

root # zypper rm sapconf

请注意,执行此操作不会卸装 sapconf 的依赖项,但 sysstat 服务将进入禁用状态。如果您仍然需要此服务,请务必再次启用它。

16.2.5 更多信息

以下手册页提供了有关 sapconf 的更多信息:

  • sapconf 设置的所有微调参数的详细说明:man 5 sapconf

  • 有关配置和自定义 sapconf 配置文件的信息:man 7 sapconf

另请参见 https://www.suse.com/c/a-new-sapconf-is-available/ 上的博客系列,其中详细介绍了 sapconf 的更新版本。

16.2.6 tunedsapconf 一起使用

在版本 5 中,sapconf 不再依赖于 tuned。这意味着,这两个工具都可以单独使用。如果 tuned 服务已启动,sapconf 将在其日志中列显警告。

重要
重要:将 tunedsapconf 一起使用

如果您要同时使用 tunedsapconf,请务必小心,因为这两个工具配置的系统参数不同。