Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
Applies to openSUSE Leap 15.3

16 Tuning SUSE Linux Enterprise for SAP Edit source

This chapter presents information about preparing and tuning openSUSE Leap to work optimally with SAP applications with sapconf. sapconf is for SUSE Linux Enterprise systems that install SAP applications. Customers who have SUSE Linux Enterprise Server for SAP Applications should use saptune.

Note
Note: The sapconf command has been removed

In SUSE Linux Enterprise Server and openSUSE Leap 11 and 12, the sapconf command was included in the package with the same name.

For SUSE Linux Enterprise Server and openSUSE Leap 15, this has been changed: The command sapconf has been removed from the sapconf package. The package contains a systemd service only. There is no sapconf command line tool anymore, no sapconf/tuned profiles, and no tuned.

16.1 Tuning SLE systems with sapconf 4 Edit source

The package sapconf is available in SUSE Linux Enterprise Server and SUSE Linux Enterprise Server for SAP Applications. This package contains the tuned profile sapconf. This single tuning profile sets recommended parameters for the following types of SAP applications: SAP NetWeaver, SAP HANA, and SAP HANA-based applications.

Overview of sapconf4 in SUSE® Linux Enterprise Server 12
sapconf4 (tuned based)
  • sap-netweaver (tuned profile)

  • sap-hana (tuned profile)

  • sap-bobj (tuned profile)

  • sap-ase (tuned profile)

Overview of sapconf4 in SUSE® Linux Enterprise Server 15
sapconf4 (tuned based)

sapconf (tuned profile)

Note that if you previously made changes to the system tuning, those changes may be overwritten by the sapconf profile.

sapconf consists of two primary parts:

  • A systemd service that ensures tuned and related services are running and the sapconf profile is applied.

  • The tuned profile sapconf that applies configured sapconf tuning parameters using a script and configuration files.

To use sapconf, make sure that the packages tuned and sapconf are installed on your system.

Note
Note: Unified profiles in SUSE Linux Enterprise Server and openSUSE Leap 15.3

In SUSE Linux Enterprise Server and openSUSE Leap 15 and above, only a single tuned profile, sapconf, is shipped. It is equivalent to the profiles sap-hana/sap-netweaver shipped in earlier versions of openSUSE Leap.

16.1.1 Enabling and disabling sapconf and viewing its status Edit source

After the installation of sapconf, tuned is enabled and the sapconf profile is activated. However, if another tuned profile is already enabled, sapconf will not enable its own tuned profile.

To make sure sapconf applies all tuning parameters, reboot the machine after installation.

You can inspect or change the status of sapconf as described in the following:

  • To see the status of the service sapconf:

    root # systemctl status sapconf

    The service should be displayed as active (exited), as it is only responsible for starting tuned and will exit afterward.

  • To start the service sapconf and with it the service tuned:

    root # systemctl start sapconf
  • Should sapconf be disabled, enable and start it with:

    root # systemctl enable --now sapconf
  • To stop the service sapconf and with it the service tuned:

    root # systemctl stop sapconf

    This will terminate tuned as well, therefore the vast majority of optimizations will be disabled immediately. The only exceptions from that are options that require a system reboot to enable/disable.

  • To disable sapconf, use:

    root # systemctl disable sapconf

    If you have not specifically enabled any of the services that sapconf depends on yourself, this will also disable most tuning parameters and all services used by sapconf.

Similarly, you can inspect and change the status of the underlying service tuned:

  • To see the status of the service tuned:

    root # systemctl status tuned
  • To see which tuned profile is currently in use:

    root # tuned-adm active

    If this command does not return the name of the currently active profile as sapconf, enable that profile:

    root # tuned-adm profile sapconf
Tip
Tip: Additional services that sapconf relies on

In addition to the sapconf service itself and the tuned service, sapconf also relies on the following two services:

  • sysstat which collects data on system activity.

  • uuidd which generates time-based UUIDs that are guaranteed to be unique even in settings where many processor cores are involved. This is necessary for SAP applications.

16.1.2 Configuring sapconf4 Edit source

In general, the default configuration of sapconf already uses the parameter values recommended by SAP. However, if you have special needs, you can configure the tool to better suit those.

The configuration of sapconf is split into two parts that can be configured in different ways:

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

Any file that adheres to this pattern can be edited like in Procedure 16.1, “Configuring sapconf4 Profiles”. To configure parameters from this file, copy it to the custom profile directory of tuned under /etc/tuned first and then change values in it. If you change the file in place instead, you will lose the changes you make on the next update of the sapconf package.

The following procedure shows an example of how to adapt the file /usr/lib/tuned/sapconf/tuned.conf. However, as written before, this is possible with any profile. Configure the file as described in the following procedure:

Procedure 16.1: Configuring sapconf4 Profiles
  1. Create a new custom tuned profile directory and copy the file tuned.conf:

    root # mkdir /etc/tuned/sapconf
    root # cp /usr/lib/tuned/sapconf/tuned.conf /etc/tuned/sapconf/
  2. Within the newly copied tuned.conf, fix the reference to script.sh to use an absolute path that points to the script from the original profile:

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

    Do not instead copy script.sh, as that provokes update compatibility issues for sapconf.

  3. Edit the parameters in /etc/tuned/sapconf/tuned.conf.

After each update to sapconf, make sure to compare the contents of the original and the custom tuned.conf.

Log messages related to this file are written to /var/log/tuned/tuned.log.

/etc/sysconfig/sapconf

This file contains most parameters of sapconf. The parameters from this file are applied using the aforementioned script /usr/lib/tuned/sapconf/script.sh.

This file can be edited directly. All parameters in this file are explained by means of comments and references to SAP Notes, which can be viewed at https://launchpad.support.sap.com/.

When sapconf is updated, all customized parameters from this file will be preserved as much as possible. However, sometimes parameters cannot be transferred cleanly to the new configuration file. Therefore, after updating it is advisable to check the difference between the previous custom configuration, which during the update is moved to /etc/sysconfig/sapconf.rpmsave, and the new version at /etc/sysconfig/sapconf.

Log messages related to this file are written to /var/log/sapconf.log.

When editing either of these files, you will find that some values are commented by means of a # character at the beginning of the line. This means that while the parameter is relevant for tuning, there is no suitable default for it.

Conversely, you can add # characters to the beginning of the line to comment specific parameters. However, you should avoid this practice, as it can lead to sapconf not properly applying the profile.

To apply edited configuration, restart sapconf:

root # systemctl restart sapconf

Confirming that a certain parameter value was applied correctly works differently for different parameters. Hence, the following serves as an example only:

Example 16.1: Checking Parameters

To confirm that the setting for TCP_SLOW_START was applied, do the following:

  • View the log file of sapconf to see whether it applied the value. Within /var/log/sapconf.log, check for a line containing this text:

    Change net.ipv4.tcp_slow_start_after_idle from 1 to 0

    Alternatively, the parameter may have already been set correctly before sapconf was started. In this case, sapconf will not change its value:

    Leaving net.ipv4.tcp_slow_start_after_idle unchanged at 1
  • The underlying option behind TCP_SLOW_START can be manually configured at /proc/sys/net.ipv4.tcp_slow_start_after_idle. To check its actual current value, use:

    root # sysctl net.ipv4.tcp_slow_start_after_idle

16.1.3 Removing sapconf Edit source

To remove sapconf from a system, uninstall its package with:

root # zypper rm sapconf

Note that when doing this, dependencies of sapconf will remain installed. However, the services sysstat and tuned will go into a disabled state. If either is still relevant to you, make sure to enable it again.

Certain parameters and files are not removed when sapconf is uninstalled. For more information, see the man page man 7 sapconf, section PACKAGE REQUIREMENTS.

16.1.4 For more information Edit source

The following man pages provide additional information about sapconf:

  • High-level overview of tuning parameters used by sapconf: man 7 tuned-profiles-sapconf

  • Detailed description of all tuning parameters set by sapconf: man 5 sapconf

  • Information about configuring and customizing the sapconf profile: man 7 sapconf

Also see the blog series detailing the updated version of sapconf at https://www.suse.com/c/a-new-sapconf-is-available/.

16.2 Tuning SLE Systems with sapconf 5 Edit source

The package sapconf is available in SUSE Linux Enterprise Server and SUSE Linux Enterprise Server for SAP Applications. It sets recommended parameters for the following types of SAP applications: SAP NetWeaver, SAP HANA, and SAP HANA-based applications.

Overview of sapconf5 in SUSE® Linux Enterprise Server 12
sapconf5 (without tuned)
  • sapconf-netweaver (sapconf profile as a replacement for tuned profile)

  • sapconf-hana (sapconf profile as a replacement for tuned profile)

  • sapconf-bobj (sapconf profile as a replacement for tuned profile)

  • sapconf-ase (sapconf profile as a replacement for tuned profile)

Overview of sapconf5 in SUSE® Linux Enterprise Server 15
sapconf5 (without tuned)

no profiles anymore

Note that if you previously made changes to the system tuning, those changes may be overwritten by sapconf.

sapconf 5 ships a systemd service which applies the tuning and ensures that related services are running.

To use sapconf, make sure that the package sapconf is installed on your system.

Note
Note: No profiles in SUSE Linux Enterprise Server and openSUSE Leap 15.3

In SUSE Linux Enterprise Server and openSUSE Leap 15, sapconf no longer supports profiles.

16.2.1 Verifying sapconf setup Edit source

With sapconf 5.0.2 and up, the check tool sapconf_check is available, which verifies the correct setup of sapconf. For example:

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!

If sapconf_check finds problems, it will give hints on how to resolve the issue. The tool will not verify whether the system has been tuned correctly. It only checks that sapconf is set up correctly and has been started.

16.2.2 Enabling and disabling sapconf and viewing its status Edit source

After the installation of sapconf, the sapconf service is enabled.

You can inspect or change the status of sapconf as described in the following:

  • To see the status of the service sapconf:

    root # systemctl status sapconf

    The service should be displayed as active (exited).

  • To start the service sapconf:

    root # systemctl start sapconf
  • Should sapconf be disabled, enable and start it with:

    root # systemctl enable --now sapconf
  • To stop the service sapconf:

    root # systemctl stop sapconf

    This command will disable the vast majority of optimizations immediately. The only exceptions from this rule are options that require a system reboot to enable/disable.

  • To disable sapconf, use:

    root # systemctl disable sapconf

    If you have not specifically enabled any of the services that sapconf depends on yourself, this will also disable most tuning parameters and all services used by sapconf.

Tip
Tip: Additional services that sapconf relies on

In addition to the sapconf service it also relies on the following two services:

  • sysstat which collects data on system activity.

  • uuidd which generates time-based UUIDs that are guaranteed to be unique even in settings where many processor cores are involved. This is necessary for SAP applications.

16.2.3 Configuring sapconf5 Edit source

In general, the default configuration of sapconf already uses the parameter values recommended by SAP. However, if you have special needs, you can configure the tool to better suit those.

All parameters of sapconf can be found in the file /etc/sysconfig/sapconf. The file can be edited directly. All parameters in this file are explained by means of comments and references to SAP Notes, which can be viewed at https://launchpad.support.sap.com/.

When sapconf is updated, all customized parameters from this file will be preserved as much as possible. However, sometimes parameters cannot be transferred cleanly to the new configuration file. Therefore, after updating it is advisable to check the difference between the previous custom configuration, which during the update is moved to /etc/sysconfig/sapconf.rpmsave, and the new version at /etc/sysconfig/sapconf.

Log messages related to this file are written to /var/log/sapconf.log.

When editing either of these files, you will find that some values are commented by means of a # character at the beginning of the line. This means that while the parameter is relevant for tuning, there is no suitable default for it.

Conversely, you can add # characters to the beginning of the line to comment specific parameters. However, you should avoid this practice, as it can lead to sapconf not properly applying the profile.

To apply edited configuration, restart sapconf:

root # systemctl restart sapconf

Confirming that a certain parameter value was applied correctly works differently for different parameters. Hence, the following serves as an example only:

Example 16.2: Checking Parameters

To confirm that the setting for TCP_SLOW_START was applied, do the following:

  • View the log file of sapconf to see whether it applied the value. Within /var/log/sapconf.log, check for a line containing this text:

    Change net.ipv4.tcp_slow_start_after_idle from 1 to 0

    Alternatively, the parameter may have already been set correctly before sapconf was started. In this case, sapconf will not change its value:

    Leaving net.ipv4.tcp_slow_start_after_idle unchanged at 1
  • The underlying option behind TCP_SLOW_START can be manually configured at /proc/sys/net.ipv4.tcp_slow_start_after_idle. To check its actual current value, use:

    root # sysctl net.ipv4.tcp_slow_start_after_idle

16.2.4 Removing sapconf Edit source

To remove sapconf from a system, uninstall its package with:

root # zypper rm sapconf

Note that when doing this, dependencies of sapconf will remain installed. However, the service sysstat will go into a disabled state. If it is still relevant to you, make sure to enable it again.

16.2.5 For more information Edit source

The following man pages provide additional information about sapconf:

  • Detailed description of all tuning parameters set by sapconf: man 5 sapconf

  • Information about configuring and customizing the sapconf profile: man 7 sapconf

Also see the blog series detailing the updated version of sapconf at https://www.suse.com/c/a-new-sapconf-is-available/.

16.2.6 Using tuned together with sapconf Edit source

With version 5, sapconf does not rely on tuned anymore. This means both tools can be used independently. sapconf will print a warning in its log if the tuned service is started.

Important
Important: Using tuned and sapconf together

If you are going to use tuned and sapconf simultaneously, be very careful, that both tools do not configure the same system parameters.

Print this page