Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member187773
Discoverer
19,001

You want to prepare your SUSE Linux Enterprise Server installation for running SAP products like SAP Netweaver, SAP BW etc.
You know there are a lot of parameters to be configured to meet the pre-requisites demanded by the installation guides of SAP. It requires also a lot of reading the different documentations found in various SAP Notes.
What if there was something that could help you in fullfilling this task automatically? Well you do not have to go far: The solution is the sapconf package available on SLES .
Simply install the sapconf package via:

# zypper in sapconf

or using YaST softwaremanagement:

sapconf does the following jobs for you:

Calculating and setting of Linux kernel parameters

Some Linux kernel parameters have to be adjusted to meet the requirements of SAP software. These values are calculated, depending on the virtual memory. The virtual memory size (VSZ) is calculated from the physical RAM and the swap size. In additon, the configured size of the memory (PSZ) pages are taken into account.
Based on the information in SAP Note 941735, the following values are
calculated:

        # required size of TMPFS: (RAM + SWAP) * 0.75
        TMPFS_SIZE_REQ=$(((VSZ*VSZ_TMPFS_PERCENT)/100))
        # kernel.shmall is in 4 KB pages; minimum 20GB
        SHMALL_REQ=$((VSZ*1024*(1024/PSZ)))
        # kernel.shmmax is in Bytes; minimum 20GB
        SHMMAX_REQ=$((VSZ*1024*1024*1024))

Afterwards it is checked whether the current system settings match at least these values. If the system settings are too low, the calculated values get applied. This is done by writing them, together with some other presets from /etc/sysconfig/sapconf, to /etc/sysctl.conf.

Setting Process resource limits

Some components (e.g. the SAP J2EE engine, Oracle RDBMS software, ...) need to keep a large number of file handles opened simultaneously. Hence the limit of files one process can open at a time needs to be increased.This is done via sapconf by appending the following to /etc/security/limits.conf:

        @sapsys          soft    nofile          32800
        @sapsys          hard    nofile          32800
        @sdba            soft    nofile          32800
        @sdba            hard    nofile          32800
        @dba            soft    nofile          32800
        @dba            hard    nofile          32800

These lines grant the users in the sapsys group (J2EE engine) and the (s)dba group (Oracle) to open up to 32800 files simultaneously, you need to logout and login again for the setting to take effect (Changing the user via "su" is not sufficient).

Attention, there is only one soft and one hard setting for nofile per user. If a user is in more than one of the above groups the nofile limits can overwrite each other. Hence it is advised to make sure that all groups specified have the same nofile setting.

The default setting of 32800 should be sufficient for most systems. However, if you get error messages like e.g.:

        kernel: open files rlimit 32800 reached for uid 1234 pid 5678

in /var/log/messages, you need to increase this number.

Just be careful to not exceed the total limit of open files for your system. Otherwise you will get error messages like:

        kernel: VFS: file-max limit 252410 reached

in /var/log/messages. You then need to modify the fs.file-max parameter as described in the file: "/usr/src/linux/Documentation/filesystems/proc.txt" from the linux kernel sources, below the heading: file-nr and file-max

You can adjust the sapconf settings by modifying the following configuration file:
/etc/sysconfig/sapconf

This configuration file is availabe after the installation of the "sapconf" package.

The file "/etc/sysconfig/sapconf" can be edited via YaST through the menu:

        "System" => "/etc/sysconfig Editor" => "Productivity" => "Other" => <parameter name>

or you directly edit the file "/etc/sysconfig/sapconf" using your favourite editor. Before making changes to any of the variables, please carefully read the variable description.

After having changed one or more parameters, or if you just want to make sure that the parameter values are correctly set up, you run the command "SAPconf" as the user "root".

The tmpfs size can be found in the output of the command:

        "df -h | grep tmpfs"

If you use the default shm size (half of the physical RAM), no entry for /dev/shm is required in /etc/fstab.

Due to the requirements of SAP software, the default shm size is not sufficient.

You can modify the tmpfs size via the parameter "SHMFSize" found in the "/etc/sysconfig/sapconf" file or by editing /etc/fstab directly.
You can find more information about the configuration of tmpfs in SAP note 386605.


So a lot of work including error prone typing has been avoided by using the sapconf package available for SUSE Linux Enterprise Server.

1 Comment