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 的应用程序。
  
sapconf4 概览 #- sapconf4(基于- tuned)
- sap-netweaver(- tuned配置文件)
- sap-hana(- tuned配置文件)
- sap-bobj(- tuned配置文件)
- sap-ase(- tuned配置文件)
 
sapconf4 概览 #- sapconf4(基于- tuned)
- sapconf(- tuned配置文件)
   请注意,如果您之前对系统微调进行了更改,sapconf 配置文件可能会重写这些更改。
  
sapconf 主要由两个部分组成:
  
- 一项 - systemd服务,该服务确保- tuned和相关服务正在运行并已应用- sapconf配置文件。
- tuned配置文件- sapconf,它使用脚本和配置文件应用所配置的- sapconf微调参数。
   要使用 sapconf,请确保您的系统上已安装 tuned 和
   sapconf 软件包。
  
    在 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 配置文件 #- 创建一个新的自定义 - tuned配置文件目录,并将- tuned.conf文件复制到其中:- root #mkdir /etc/tuned/sapconf- root #cp /usr/lib/tuned/sapconf/tuned.conf /etc/tuned/sapconf/
- 在新复制的 - tuned.conf中,修复对- script.sh的引用,以使用指向原始配置文件中的脚本的绝对路径:- script = /usr/lib/tuned/sapconf/script.sh - 不要复制 - script.sh,这会造成- sapconf出现更新兼容性问题。
- 编辑 - /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
确认是否正确应用了某个参数值的方式根据参数的不同而异。因此,以下方法仅用作示例:
     要确认是否已应用 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 的依赖项,但 sysstat 和 tuned 服务将进入禁用状态。如果您仍然需要其中的任一服务,请务必再次启用它。
   
    卸装 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 的应用程序。
  
sapconf5 概览 #- sapconf5(不包含- tuned)
- sapconf-netweaver(取代了- tuned配置文件的- sapconf配置文件)
- sapconf-hana(取代了- tuned配置文件的- sapconf配置文件)
- sapconf-bobj(取代了- tuned配置文件的- sapconf配置文件)
- sapconf-ase(取代了- tuned配置文件的- sapconf配置文件)
 
sapconf5 概览 #- sapconf5(不包含- tuned)
- 不再包含配置文件 
   请注意,如果您之前对系统微调进行了更改,sapconf 可能会重写这些更改。
  
sapconf 5 随附了一个 systemd 服务,该服务会应用微调并确保相关的服务正在运行。
  
   要使用 sapconf,请确保您的系统上已安装 sapconf 软件包。
  
    在 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise Server 15 中,sapconf 不再支持配置文件。
   
16.2.1 校验 sapconf 设置 #
sapconf 5.0.2 和更高版本中提供了检查工具 sapconf_check,用于校验是否已正确设置 sapconf。例如:
   
root #sapconf_checkThis 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
确认是否正确应用了某个参数值的方式根据参数的不同而异。因此,以下方法仅用作示例:
     要确认是否已应用 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 将 tuned 与 sapconf 一起使用 #
    在版本 5 中,sapconf 不再依赖于 tuned。这意味着,这两个工具都可以单独使用。如果 tuned 服务已启动,sapconf 将在其日志中列显警告。
   
tuned 与 sapconf 一起使用
     如果您要同时使用 tuned 和 sapconf,请务必小心,因为这两个工具配置的系统参数不同。