7021290: Increased process “memory usage” after upgrading to SLES 12 SP2

When using the code from a shared library, the code that gets executed will create a virtual-> physical mapping of the pages the code “touches”.

A page in X86 is 4 kilobytes/4096. If only one small function in a library in SP0 [that does not have “do_fault_around”] is used, that is how much RSS that library will get charged.

For SP2, that same function call will map 64 kilobytes/65536, and this will be reflected in Resident Set Size (RSS) and Proportional Set Size (PSS).

The values can be found in /proc/<pid>/smaps.

Note though, that the physical pages are already present in the “page cache”, so there is no difference in the actual memory usage here.

The file /sys/kernel/debug/fault_around_bytes does not exist on SLES 12 GA, but on SP2 it exists with a default value of 65536.

In the end the customer was able to restore the memory use characteristics/stats of SP0 on SP2 by

echo 4096 > /sys/kernel/debug/fault_around_bytes

Related:

Leave a Reply