Ajustar as configurações de memória - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Ajustar as configurações de memória

Recomendamos configurar os valores de memória padrão para um banco de dados do SQL Server que esteja executando workloads do JD Edwards. Eles incluem:

  • Definir as configurações de memória máxima e mínima

  • Bloquear páginas na memória

Configurar as memórias máxima e mínima

Definir a memória máxima do banco de dados SQL Server garante que os sistemas operacionais e outros processos tenham memória suficiente para realizar suas ações sem paginar para disco. Definir as memórias máxima e mínima pode evitar que várias instâncias do SQL Server instaladas na mesma instância do EC2 consumam memória umas das outras.

É possível usar o script a seguir para definir automaticamente as configurações máxima e mínima com valores conservadores. Esse script reserva 1 GB para o sistema operacional e 25% da memória abaixo de 16 GB e 12,5% da memória restante como overhead. A memória mínima do SQL Server está definida como metade da memória máxima. O script pressupõe que haja um único banco de dados SQL Server instalado na instância do EC2.

DECLARE @OSMemoryTotalKB bigint; DECLARE @OSMemoryUnder16GB bigint; DECLARE @OSMemoryOver16GB bigint; DECLARE @OSOverhead bigint; DECLARE @MemoryOverheadLower bigint; DECLARE @MemoryOverheadUpper bigint; DECLARE @MemoryOverheadTotal bigint; DECLARE @SQLMaxMemory int; DECLARE @SQLMinMemory int; -- Find how much memory is available on the OS SELECT @OSMemoryTotalKB = total_physical_memory_kb from sys.dm_os_sys_memory; SET @OSMemoryUnder16GB = IIF(@OSMemoryTotalKB>16777216, 16777216, @OSMemoryTotalKB); SET @OSMemoryOver16GB = IIF(@OSMemoryTotalKB>16777216, @OSMemoryTotalKB-16777216, 0); -- Calculate overhead for the OS SET @OSOverhead= 1048576; -- static 1GB reservation -- Calculate overhead for managing memory SET @MemoryOverheadLower = @OSMemoryUnder16GB/4; --reserve 25% of memory under 16GB for overhead SET @MemoryOverheadUpper = @OSMemoryOver16GB/8; -- reserve 12.5% of memory over 16GB for overhead SET @MemoryOverheadTotal = @OSOverhead + @MemoryOverheadLower + @MemoryOverheadUpper; -- Calculate remaining memory available for SQL SET @SQLMaxMemory = (@OSMemoryTotalKB-@MemoryOverheadTotal)/1024; SET @SQLMinMemory = @SQLMaxMemory/2; -- set minimum to half of maximum Print N'Total Server memory (KB): ' + CAST(@OSMemoryTotalKB as NVARCHAR); Print N'Memory Overhead for OS Overhead (KB): ' + CAST(@OSOverhead as NVARCHAR); Print N'Memory Overhead for management of lower 16GB (KB): ' + CAST(@MemoryOverheadLower as NVARCHAR); Print N'Memory Overhead for management of over 16GB (KB): ' + CAST(@MemoryOverheadUpper as NVARCHAR); Print N'Memory Overhead Total: ' + CAST(@MemoryOverheadTotal as NVARCHAR); Print N'SQL Minimum Memory (MB): ' + CAST(@SQLMinMemory as NVARCHAR); Print N'SQL Maximum Memory (MB): ' + CAST(@SQLMaxMemory as NVARCHAR); EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'min server memory', @SQLMinMemory RECONFIGURE; EXEC sp_configure 'max server memory', @SQLMaxMemory; RECONFIGURE;

Bloquear páginas na memória

Para garantir a estabilidade da memória usada para um banco de dados SQL Server do EnterpriseOne, recomendamos bloquear páginas na memória. Siga as etapas descritas no guia Práticas recomendadas para implantar o SQL Server no Amazon EC2 para concluir essa configuração.