Solución: La memoria excede los límites configurados especificados por memory.memorylimitmb en SQL Server

Síntomas

Es posible que SQL Server en Linux no cumpla con los límites de memoria establecidos por la opción de configuración memory.memorylimitmb, como lo demuestran las herramientas de supervisión como TOP y PS que muestran el uso de memoria que excede los límites configurados.

Por ejemplo, observa que la memoria notificada por los campos Tamaño de memoria residente (RES) o Uso de memoria residente (RSS) en los siguientes comandos es mayor que la memoria configurada por memory.memorylimitmb.

top -p $(pidof sqlservr | cut -d' ' -f1)

ps -p $(pidof sqlservr | cut -d' ' -f1) -u

Resolución

Este problema se corrige en las siguientes actualizaciones acumulativas para SQL Server:

Nota

Después de aplicar la corrección, para los servidores que tienen la autenticación de Active Directory configurada, es posible que todavía vea el problema o observe que los límites de memoria se memory.memorylimitmb consumen rápidamente. En este escenario, también debe actualizar la versión de los paquetes Kerberos v5 (krb5) en Linux a 1.19.2 o versiones posteriores para resolver una defcred fuga en krb5_gss_inquire_cred(). Para obtener más información, consulte Corregir la fuga desactivada en krb5_gss_inquire_cred().

Para las distribuciones de Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04 o SUSE Linux Enterprise Server (SLES) 12, es posible que deba ponerse en contacto con el proveedor de distribución de Linux para solicitar paquetes actualizados para krb5.

Si no puede actualizar los paquetes, puede solucionar la fuga mediante krb5_gss_inquire_cred() conexiones agrupadas en las cadenas de conexión de la aplicación.

Supervisar el uso de memoria en SQL Server en Linux

Después de instalar la actualización acumulativa 14 (CU14) de SQL Server 2022 o SQL Server 2019 CU27 o versiones posteriores, podrá supervisar las alertas de recursos del sistema mediante las columnas y system_high_memory_signal_state en sys.dm_os_sys_memory la system_low_memory_signal_state vista de administración dinámica (DMV). Si system_low_memory_signal_state se muestra 1constantemente, considere la posibilidad de aumentar la asignación de memoria para SQL Server o revise las consultas que consumen la mayor parte de la memoria y, a continuación, resuelva sus requisitos de memoria.

Acerca de las actualizaciones acumulativas para SQL Server

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad de la compilación anterior. Se recomienda instalar la compilación más reciente para su versión de SQL Server:

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Referencias

Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.

Aviso de declinación de responsabilidades sobre la información de terceros

Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.