Prepare your Linux for your SAP solution with saptune
First of all for what do you need the tool saptune?
- automatically tuning your system without reading tons of SAP notes
- ensures that all your SAP systems configured identically with a central solution
- create your own customized profiles
Why you have to configure all this parameters?
- ensure system performance for your SAP solution like HANA
- run a stable system
- ensure SAP support for certified solution like HANA
SLES for SAP Applications 12 SP2 now ships with the system tuning utility saptune.
In addition to saptune, the package sapconf contains the basic utility sapconf. sapconf also allows tuning for SAP systems but is less comprehensive and offers less granularity than saptune. However, unlike saptune, sapconf is available directly in SUSE Linux Enterprise Server and thus not dependent on using SLES for SAP.
sapconf and saptune both rely on the daemon tuned to set tuning configuration but they use different (though at times very similar) tuning profiles. Therefore, only one(!) of sapconf _or_ saptune can be enabled at a time.
If you have installed your SLES system with the SAP installation wizard the correct profile is already used.
So we have two tools sapconf and saptune:
sapconf: available in SLES11 and SLES12 (without SLES for SAP Applications subscription)
saptune: available since SLES12 SP2 (only with SLES for SAP Applications subscription)
For both tools check out the official SAP documentation in note 1275776.
More details about the older tool sapconf in Ulrich Schairer’s blog
There is a new reworked sapconf version which can be used since the following versions:
4.1.12-40.47.1 (SLES 12 SP3)
4.1.12-33.15.1 (SLES 12 SP2)
4.1.12-18.24.1 (SLES 12 SP1)
Details from Soeren Schmidt in his blog series:
Installation and dependencies: sapconf – Part 1
Configuration: sapconf – Part 2
Updating: sapconf – Part 3
Deinstallation: sapconf – Part 4
Summary + tips & tricks: sapconf – Part 5
How to activate it?
1.List available solutions
1.1 saptune
saptune solution list
1.2 sapconf
tuned-adm list
2. Choose a solution (saptune) or profile (sapconf)
2.1 saptune
saptune solution apply SOLUTION
2.2 sapconf
tuned-adm PROFILENAME
3. start daemon
3.1 saptune
saptune daemon start
disable / enable daemon
systemctl disable tuned
systemctl enable tuned
3.2 sapconf
sapconf start
disable daemon
systemctl disable sapconf tuned
4. check active profile
4.1 saptune
saptune daemon status
if saptune is active sapconf/tuned-adm will show the following:
tuned-adm list
4.2 sapconf
active profile can be found under
/etc/tuned/active_profile
or
tuned-adm active
tuned-adm list
5. Apply single SAP notes
saptune note list
saptune note [ list | verify ]
saptune note [ apply | simulate | verify | customise | revert ] NoteID
You can apply, simulate, verify, customise and revert such notes. You can also combine solutions and notes.
6. Customize an existing SUSE standard profile (sapconf)
2205917 – SAP HANA DB: Recommended OS settings for SLES 12 / SLES for SAP Applications 12
SAP recommendation
cat /usr/lib/tuned/sap-hana/tuned.conf
=> ‘force_latency’ is already set
If you want to add sysctl kernel parameter from other vendors (e.g. VMware for virtualization or NetApp for storage), you can set them in your own profile. Just look into their best practise guides for the recommended parameters. This is only possible with sapconf!
Example:
net.ipv4.tcp_slow_start_after_idle=0
cp /usr/lib/tuned/sap-hana/tuned.conf /etc/tuned/sap-hana/tuned.conf
vi /etc/tuned/sap-hana/tuned.conf
[sysctl]
net.ipv4.tcp_slow_start_after_idle = 0
[bootloader]
cmdline = YOUR_ADDITIONAL_KERNEL_PARAMETERS
[script]
script = /usr/lib/tuned/sap-hana/script.sh
7. Create your own profile (sapconf)
cp /usr/lib/tuned/sap-hana/tuned.conf /etc/tuned/sap-cust/tuned.conf
[sysctl]
parameter = value
[script]
script = /usr/lib/tuned/sap-hana/script.sh
adjust the parameters for your needs – ‘sap-cust’ is the name of the new profile
tuned-adm list
=> you can see two new profiles ‘sap-test’ and ‘sap-cust’
Logfiles:
/var/log/sapconf.log
/var/log/tuned/tuned.log
Details
Delivered SAP Notes
/etc/sysconfig/sap*
Standard Tuned files
/usr/lib/tuned
Important notes
2382421 Optimizing the Network Configuration on HANA- and OS-Level
1868829 Startup Issues Because Number of Active I/O Requests to Queue Exceeds aio-max-nr Limit
2205917 SAP HANA DB: Recommended OS settings for SLES 12 / SLES for SAP Applications 12
SAP note 1275776 – Linux: Preparing SLES for SAP environments
Hi,
thanks for the article. Just a few corrections:
This is not the same! Saptune is shipped with only one profile: 'saptune'.
The other profiles like sap-hana, sap-netweaver, sap-bobj and sap-ase are coming from sapconf and have nothing to do with saptune.
"saptune daemon start" (you show this comman a few lines later) will set the saptune profile and start/enable tuned.
Background: The script called in /usr/lib/tuned/saptune/tuned.conf will call "saptune daemon apply" which reads the configuration file
/etc/sysconfig/saptune and there you will find the configured solution and notes set by "saptune solution apply SOLUTION
".
Current active profile: saptune.
To check the enabled notes/solutions 'saptune note|solution list' has to be called.
Again. This is valid for sapconf not saptune.
Later on you show how to edit your own profile, but again on a sapconf tuned configuration.
Yes, again a sapconf example. 😉
One advice. If own options are added, it should be checked, that they don't interfere with settings made by the script (in our case saptune or sapconf).
Hi Soeren,
thanks for the input! This is fully correct, but if you don't uninstall sapconf everyone gets this views and status output of the commands. The blog was originally written for both tools, so may be the title is a bit misleading.
I also love the mix up of sapconf and saptune in note 2205917 🙂 Here is stated out that you should use sapconf and saptune 🙂
If you uninstall sapconf you will get a better view of what is part of saptune. But to avoid further confusions I will edit the blog and the screenshots in the next weeks for both tools.
Thanks & Regards,
Jens
Hi Jens,
To rework this is on my list for next week. Got me!
The wording is not quite clear I guess. 
I have rewritten SAP note 1275776 for the sapconf/saptune purpose. May be you want to have look….
Cool. For sapconf I will publish a blog series for sapconf (on SUSE and here as well) since our rework of that tool is done and documentation is needed.( wink wink nudge nudge…)
(( Here is the first article: /https://blogs.sap.com/2018/06/13/sapconf-a-way-to-prepare-a-sles-system-for-sap-workload-part-1/. The other 4 are in review))
Within the next few month we plan to rework saptune as well to better it. Feedback is welcome…
Regards,
Sören
Hi Sören,
good job! A real documentation in context of SAP usage was missing a long time. Good examples with practice relvance. I have edited my blog and linked your blog series. Also nice to see the dependencies of the tools and daemons.
I'm looking forward to use the reworked sapconf version in my next projects. The parameters of the profiles are better documented in contrast to saptune.
Regards,
Jens
Thanks, spatune will be next and the result will/shall be as good as sapconf. 😉
Hello Jens Gleichmann ,
Glad to read your blog about saptune & sapconf, I have some queries about saptune.
Thanks
Wajid
Hi Wajid,
at first there are some new versions of the tools which should be considered. There are some blog posts from Dennis and Soeren available:
Regarding your questions:
At least saptune is a perfect base for your system for harmonizing the configuration. Please take attention to the following aspects:
But remember every environment, system or scanerio is different. There is no silver bullet to use one tool to solve all your issues. You still have to validate the settings and verify them on each deployment.
Regards,
Jens
https://blogs.sap.com/2019/12/16/suse-lets-migrate-saptune-to-version-2/
Best Regards Roland