Estamos experimentando um crescimento lento de memória roubada em nossos servidores de banco de dados no espaço de vários dias. Parece atingir um platô em torno de 130-140 GB, momento em que começamos a ter problemas maiores, como erros de falta de memória, congelamentos de vários segundos e failovers de AG. Os problemas começam a se manifestar cerca de uma semana após a reinicialização. Comecei a registrar o histórico de memória roubada, que é mostrado abaixo:
Olhando para sys.dm_os_memory_clerks
, parece que a maior parte disso vem da memória não-página registrada no buffer pool no nó NUMA 0:
O rastreamento do total pages_kb
do buffer pool ao longo do tempo mostra o declínio no número de páginas à medida que virtual_memory_committed_kb
aumenta. (Em 13 de abril, o servidor foi reinicializado para atualizações do Windows. O pool de buffers chega a 400 GB em cerca de uma hora)
Alguém já viu esse comportamento antes?
Estamos executando o SQLServer 2016 CU12 13.0.5698.0 O servidor é uma instância AWS EC2 i3.16xlarge de 64 núcleos. Temos vários outros clusters do mesmo tamanho que estão apresentando esse problema. Também temos alguns clusters em instâncias i3.8xlarge de 32 núcleos que também mostram o crescimento da memória roubada, mas não acabam travando / gerando erros de falta de memória. A única diferença (além da escala) é que os servidores de 64 núcleos possuem 2 nós NUMA.
Atualização: MS indicou que a correção de bug no KB4536005 não está sendo portada para SQL2016.