18 Tuning SUSE Linux Enterprise for SAP #
  This chapter presents information about preparing and tuning SUSE Linux Enterprise Server
  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.
 
sapconf command has been removed
    In SUSE Linux Enterprise Server and SUSE Linux Enterprise Server 11 and 12, the sapconf command
    was included in the package with the same name.
  
    For SUSE Linux Enterprise Server and SUSE Linux Enterprise Server 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.
   
18.1 Tuning SLE Systems with sapconf 5 #
   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.
  
sapconf5 in SUSE® Linux Enterprise Server 12 #- sapconf5 (without- tuned)
- sapconf-netweaver(- sapconfprofile as a replacement for- tunedprofile)
- sapconf-hana(- sapconfprofile as a replacement for- tunedprofile)
- sapconf-bobj(- sapconfprofile as a replacement for- tunedprofile)
- sapconf-ase(- sapconfprofile as a replacement for- tunedprofile)
 
sapconf5 in SUSE® Linux Enterprise Server 15 #- sapconf5 (without- tuned)
- no profiles anymore 
   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.
  
    In SUSE Linux Enterprise Server and SUSE Linux Enterprise Server 15, sapconf no longer supports profiles.
   
18.1.1 Verifying sapconf setup #
    With sapconf 5.0.2 and up, the check tool sapconf_check is available,
    which verifies the correct setup of sapconf. For example:
   
#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!
    If sapconf_check finds problems, it gives hints
    on how to resolve the issue.
    The tool does not verify whether the system has been tuned correctly. It
    only checks that sapconf
    is set up correctly and has been started.
   
18.1.2 Enabling and disabling sapconf and viewing its status #
    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:- #- systemctl status sapconf- The service should be displayed as active (exited). 
- To start the service - sapconf:- #- systemctl start sapconf
- Should - sapconfbe disabled, enable and start it with:- #- systemctl enable --now sapconf
- To stop the service - sapconf:- #- systemctl stop sapconf- This command disables most of the optimizations immediately. The only exceptions from this rule are options that require a system reboot to enable/disable. 
- To disable - sapconf, use:- #- systemctl disable sapconf- If you have not specifically enabled any of the services that - sapconfdepends on, this also disables most tuning parameters and all services used by- sapconf.
sapconf relies on
     Besides the sapconf service, it also relies on the following two services:
    
- sysstatwhich collects data on system activity.
- uuiddwhich 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.
18.1.3 Configuring sapconf5 #
    Generally, 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 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 are 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 can find that certain values are
    commented by 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 the edited configuration, restart sapconf:
   
#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:
     To confirm that the setting for TCP_SLOW_START was
     applied, do the following:
    
- View the log file of - sapconfto 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 - sapconfwas started. In this case,- sapconfdoes not change its value:- Leaving net.ipv4.tcp_slow_start_after_idle unchanged at 1 
- The underlying option behind - TCP_SLOW_STARTcan be manually configured at- /proc/sys/net.ipv4.tcp_slow_start_after_idle. To check its actual current value, use:- #- sysctl net.ipv4.tcp_slow_start_after_idle
18.1.4 Removing sapconf #
    To remove sapconf from a system, uninstall its package with:
   
#zypper rm sapconf
    When doing this, dependencies of sapconf remain installed.
    However, the service sysstat goes into a disabled state. If it is still relevant to you, make sure to
    enable it again.
   
18.1.5 For more information #
    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 - sapconfprofile:- 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/.
   
18.1.6 Using tuned together with  sapconf #
    With version 5, sapconf does not rely on tuned anymore. This means both tools
    can be used independently.
    sapconf prints a warning in its log if the tuned service
    is started.
   
tuned and sapconf together
     If you are going to use tuned and sapconf simultaneously,
     ensure that both tools do not configure the same system parameters.