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 1
in 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:
- Aggiornamento cumulativo più recente per SQL Server 2022
- Aggiornamento cumulativo più recente per SQL Server 2019
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