FIX: Memory exceeds the configured limits that are specified by memory.memorylimitmb in SQL Server
Symptoms
SQL Server on Linux might not comply with the memory boundaries that are set by the memory.memorylimitmb configuration option, as evidenced by monitoring tools such as top and ps displaying memory usage that exceeds the configured limits.
For example, you notice that the memory reported by the Resident Memory Size (RES) or Resident Memory Usage (RSS) fields in the following commands is higher than the memory configured by memory.memorylimitmb
.
top -p $(pidof sqlservr | cut -d' ' -f1)
ps -p $(pidof sqlservr | cut -d' ' -f1) -u
Resolution
This problem is fixed in the following cumulative updates for SQL Server:
Note
After applying the fix, for servers that have Active Directory authentication configured, you might still see the issue or notice that the memory limits of memory.memorylimitmb
are consumed quickly. In this scenario, you also need to update the version of Kerberos v5 (krb5) packages on Linux to 1.19.2 or later versions to resolve a defcred
leak in krb5_gss_inquire_cred()
. For more information, see Fix defcred leak in krb5_gss_inquire_cred().
For Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04, or SUSE Linux Enterprise Server (SLES) 12 distributions, you might need to contact your Linux distribution vendor to request updated packages for krb5.
If you can't update the packages, you can still work around the leak in krb5_gss_inquire_cred()
by using pooled connections in your application connection strings.
Monitor memory usage in SQL Server on Linux
After installing SQL Server 2022 Cumulative Update 14 (CU14) or SQL Server 2019 CU27 or later versions, you'll be able to monitor system resource alerts by using the system_low_memory_signal_state
and system_high_memory_signal_state
columns in sys.dm_os_sys_memory
dynamic management view (DMV). If system_low_memory_signal_state
consistently shows 1
, consider increasing the memory allocation for SQL Server or review the queries that consume the most memory and then resolve their memory requirements.
About cumulative updates for SQL Server
Each new cumulative update for SQL Server contains all the hotfixes and security fixes that were in the previous build. We recommend that you install the latest build for your version of SQL Server:
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
References
Learn about the terminology that Microsoft uses to describe software updates.
Third-party information disclaimer
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.