Проблема
SQL Server на Linux может не соответствовать границам памяти, заданным параметром конфигурации memory.memorylimitmb, о чем свидетельствуют средства мониторинга, такие как TOP и PS, показывающие использование памяти, превышающее настроенные пределы.
Например, вы заметите, что объем памяти, сообщаемый полями Resident Memory Size (RES) или Resident Memory Usage (RSS) в следующих командах, больше, чем объем памяти, настроенный с помощью memory.memorylimitmb.
top -p $(pidof sqlservr | cut -d' ' -f1)
ps -p $(pidof sqlservr | cut -d' ' -f1) -u
Решение
Эта проблема устранена в следующих накопительных обновлениях для SQL Server:
- Накопительный пакет обновления 14 для SQL Server 2022
- Накопительный пакет обновления 27 для SQL Server 2019
Примечание
После применения исправления на серверах с настроенной проверкой подлинности Active Directory по-прежнему может возникать проблема или возникать быстрое использование памяти memory.memorylimitmb . В этом сценарии вам также необходимо обновить версию пакетов Kerberos v5 (krb5) в Linux до 1.19.2 или более поздних версий, чтобы устранить defcred утечку в krb5_gss_inquire_cred(). Дополнительные сведения см. в разделе "Устранение утечки defcred в 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 или более поздних версий вы сможете отслеживать оповещения системных ресурсов с помощью столбцов and system_low_memory_signal_statesystem_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, перечисленных в разделе «Относится к».
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.
Заявление об отказе от ответственности за продукцию сторонних производителей
Продукты сторонних разработчиков, рассмотренные в этой статье, выпущены компаниями, независимыми от корпорации Майкрософт. Корпорация Майкрософт не гарантирует надлежащую работоспособность и надежность этих продуктов.