Compartilhar via


CORREÇÃO: A memória excede os limites configurados especificados por memory.memorylimitmb no SQL Server

Sintomas

O SQL Server no Linux pode não estar em conformidade com os limites de memória definidos pela opção de configuração memory.memorylimitmb, conforme evidenciado por ferramentas de monitoramento, como top e ps, exibindo o uso de memória que excede os limites configurados.

Por exemplo, você observa que a memória relatada pelos campos Tamanho da memória residente (RES) ou Uso da memória residente (RSS) nos comandos a seguir é maior do que a memória configurada pelo memory.memorylimitmb.

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

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

Resolução

Esse problema é corrigido nas seguintes atualizações cumulativas do SQL Server:

Observação

Depois de aplicar a correção, para servidores que têm a autenticação do Active Directory configurada, você ainda poderá ver o problema ou perceber que os limites de memória são consumidos memory.memorylimitmb rapidamente. Nesse cenário, você também precisa atualizar a versão dos pacotes Kerberos v5 (krb5) no Linux para 1.19.2 ou versões posteriores para resolver um defcred vazamento no krb5_gss_inquire_cred(). Para obter mais informações, consulte Corrigir vazamento confirmado em krb5_gss_inquire_cred().

Para distribuições do Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04 ou SUSE Linux Enterprise Server (SLES) 12, talvez seja necessário entrar em contato com o fornecedor da distribuição do Linux para solicitar pacotes atualizados para o krb5.

Se você não puder atualizar os pacotes, ainda poderá contornar o vazamento usando krb5_gss_inquire_cred() conexões em pool nas cadeias de conexão do aplicativo.

Monitorar o uso de memória no SQL Server no Linux

Depois de instalar a Atualização Cumulativa 14 (CU14) do SQL Server 2022 ou o SQL Server 2019 CU27 ou versões posteriores, você poderá monitorar alertas de recursos do sistema usando as system_low_memory_signal_state colunas e system_high_memory_signal_state na sys.dm_os_sys_memory DMV (exibição de gerenciamento dinâmico). Se system_low_memory_signal_state mostrar 1consistentemente, considere aumentar a alocação de memória para o SQL Server ou examine as consultas que consomem mais memória e resolva seus requisitos de memória.

Sobre atualizações cumulativas para SQL Server

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e correções de segurança que estavam na compilação anterior. Recomendamos que você instale o build mais recente para sua versão do SQL Server:

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Referências

Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.