Condividi tramite


CORREZIONE: la memoria supera i limiti configurati specificati da memory.memorylimitmb in SQL Server

Sintomi

SQL Server in Linux potrebbe non essere conforme ai limiti di memoria impostati dall'opzione di configurazione memory.memorylimitmb, come dimostrato dagli strumenti di monitoraggio, ad esempio top e ps che visualizzano l'utilizzo della memoria che supera i limiti configurati.

Si noti, ad esempio, che la memoria segnalata dai campi Dimensioni memoria residente (RES) o UTILIZZO memoria residente (RSS) nei comandi seguenti è superiore alla memoria configurata da memory.memorylimitmb.

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

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

Risoluzione

Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:

Note

Dopo aver applicato la correzione, per i server in cui è configurata l'autenticazione di Active Directory, è possibile che venga comunque visualizzato il problema o si noti che i limiti di memoria di memory.memorylimitmb vengono utilizzati rapidamente. In questo scenario è anche necessario aggiornare la versione dei pacchetti Kerberos v5 (krb5) in Linux a 1.19.2 o versioni successive per risolvere una defcred perdita in krb5_gss_inquire_cred(). Per altre informazioni, vedere Correzione della perdita defcred in krb5_gss_inquire_cred().

Per le distribuzioni di Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04 o SUSE Linux Enterprise Server (SLES) 12, potrebbe essere necessario contattare il fornitore della distribuzione Linux per richiedere pacchetti aggiornati per krb5.

Se non è possibile aggiornare i pacchetti, è comunque possibile aggirare la perdita krb5_gss_inquire_cred() di dati usando connessioni in pool nelle stringa di connessione dell'applicazione.

Monitorare l'utilizzo della memoria in SQL Server in Linux

Dopo aver installato l'aggiornamento cumulativo 14 (CU14) o SQL Server 2019 CU27 o versioni successive di SQL Server 2022, sarà possibile monitorare gli avvisi delle risorse di sistema usando le system_low_memory_signal_state colonne e system_high_memory_signal_state nella sys.dm_os_sys_memory dmV (Dynamic Management View). Se system_low_memory_signal_state mostra 1in modo coerente , prendere in considerazione l'aumento dell'allocazione di memoria per SQL Server o esaminare le query che utilizzano la maggior parte della memoria e quindi risolvere i requisiti di memoria.

Informazioni sugli aggiornamenti cumulativi per SQL Server

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e le correzioni di sicurezza presenti nella build precedente. È consigliabile installare la build più recente per la versione di SQL Server:

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Riferimenti

Informazioni sulla terminologia usata da Microsoft per descrivere gli aggiornamenti software.

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti