Симптоми
SQL Server на Linux може да не отговаря на границите на паметта, които са зададени от опцията за конфигуриране memory.memorylimitmb, както се вижда от инструменти за наблюдение като top и ps, показващи използване на паметта, което надвишава конфигурираните ограничения.
Забелязвате например, че паметта, отчетена от полетата за размер на резидентната памет (RES) или използване на резидентната памет (RSS) в следните команди, е по-висока от паметта, конфигурирана от memory.memorylimitmb.
top -p $(pidof sqlservr | cut -d' ' -f1)
ps -p $(pidof sqlservr | cut -d' ' -f1) -u
Решение
Този проблем е решен в следните кумулативни актуализации за SQL Server:
Забележка
След като приложите корекцията, за сървъри с конфигурирано удостоверяване за Active Directory все още може да виждате проблема или да забележите, че границите на паметта memory.memorylimitmb се изразходват бързо. В този случай трябва също да актуализирате версията на пакетите на Kerberos v5 (krb5) на Linux до 1.19.2 или по-нови версии, за да разрешите изтичането defcred на данни в krb5_gss_inquire_cred(). За повече информация вижте Коригиране на изтек на защита в krb5_gss_inquire_cred().
За дистрибуции на Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04 или SUSE Linux Enterprise Server (SLES) 12 може да се наложи да се свържете с вашия доставчик на дистрибуция на Linux, за да поискате актуализирани пакети за krb5.
Ако не можете да актуализирате пакетите, можете все пак да заобиколите изтичането krb5_gss_inquire_cred() , като използвате насложени връзки в низовете за връзка на приложението.
Наблюдавайте използването на паметта в SQL Server на Linux
След инсталирането на сборна актуализация 14 (CU14) на SQL Server 2022 или SQL Server 2019 CU27 или по-нови версии, ще можете да следите известията за системен ресурс с помощта на system_low_memory_signal_state колоните "And system_high_memory_signal_state " в sys.dm_os_sys_memory изглед за динамично управление (DMV). Ако system_low_memory_signal_state постоянно се показва1, помислете за увеличаване на заделената памет за SQL Server или прегледайте заявките, които консумират най-много памет, и след това коригирайте техните изисквания за памет.
За кумулативните актуализации за SQL Server
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били в предишната компилация. Препоръчваме ви да инсталирате най-новата компилация за вашата версия на SQL Server:
- Най-нова кумулативна актуализация за SQL Server 2022
- Последна кумулативна актуализация за SQL Server 2019
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Справки
Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.
Отказ от отговорност за информация от трети лица
Продуктите на други разработчици, обсъждани в тази статия, са произведени от независими от Microsoft фирми. Microsoft не дава никаква подразбираща се или друга гаранция относно производителността или надеждността на тези продукти.