Este tutorial mostra como criar uma instância de VM do Compute Engine executando o SQL Server otimizada para desempenho. Este tutorial orienta você na criação da instância e na configuração do SQL Server para desempenho ideal emGoogle Cloud. Você aprenderá sobre diversas opções de configuração disponíveis para ajudá-lo a ajustar o desempenho do sistema.
Este tutorial usa o SQL Server Standard Edition 2022, portanto, nem todas as opções de configuração apresentadas neste guia funcionam para todos e nem todas oferecem benefícios de desempenho perceptíveis para todas as cargas de trabalho.
Objetivos
- Configurar a instância e os discos do Compute Engine.
- Configurando o sistema operacional Windows.
- Configurando o SQL Server.
Custos
Este tutorial usa componentes faturáveis de Google Cloud, incluindo:
- Instância com muita memória do Compute Engine
- Armazenamento em disco permanente SSD do Compute Engine
- Armazenamento em disco SSD local do Compute Engine
- Imagem pré-configurada do SQL Server Standard
A Calculadora de Preços pode gerar uma estimativa de custo com base no uso projetado. O link fornecido mostra a estimativa de custo dos produtos utilizados neste tutorial, que pode custar mais de 4 dólares (EUA) por hora e mais de 3.000 dólares por mês.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Como criar a VM do Compute Engine com discos
Para criar uma instância do SQL Server de alto desempenho, primeiro você deve criar uma instância de VM com o SQL Server e dois discos permanentes.
Considerações sobre discos permanentes
Para selecionar o tipo de discos permanentes para sua VM, revise as seguintes considerações:
Um SSD local fornece um local de alto desempenho para
tempdb
e arquivo de paginação do Windows.Há algumas considerações importantes a serem observadas ao usar um SSD local. Quando você desliga sua instância do Windows ou a reinicia usando a API, o SSD local é removido. Esta ação torna a instância não inicializável. Para que a máquina volte a funcionar, você precisará desanexar os discos permanentes, criar uma nova instância com eles e, em seguida, definir um novo SSD local. Após a inicialização, você também precisará formatar o novo disco e reinicializar. Portanto, você não deve armazenar permanentemente dados críticos em um SSD local ou desligar a instância, a menos que esteja preparado para reconstruí-la.
Um disco permanente SSD fornece armazenamento de alto desempenho para os arquivos de banco de dados.
O desempenho do disco permanente é baseado em um cálculo que usa o número de CPUs e o tamanho do disco. Com 32 vCPUs e um disco de 1 TB, o desempenho atinge o pico de 40.000 operações de leitura por segundo (ops) e 30.000 operações de gravação. A taxa de transferência sustentada total para leituras e gravações é de 800 MB por segundo e 400 MB por segundo, respectivamente. Essas medidas representam uma soma de todos os discos permanentes conectados à máquina virtual, incluindo a unidade
C:\
. É por isso que você deve criar um SSD local para descarregar todos os IOPS necessários para o arquivo de paginação,tempdb
, dados de teste e backups.
Para ler mais sobre o desempenho do disco, consulte Configurar discos para atender aos requisitos de desempenho .
Criação de VM do Compute Engine com discos
Para criar uma VM que tenha o SQL Server 2022 Standard pré-instalado no Windows Server 2022, siga estas etapas:
No console do Google Cloud, acesse a página Criar uma instância .
Para Nome , insira
ms-sql-server
.Na seção Configuração da máquina , selecione Finalidade geral e faça o seguinte:
- Na lista Série , clique em N2 .
- Na lista Tipo de máquina , clique em n2-highmem-16 (16vCPU, 128 GB de memória) .
Na seção Disco de inicialização , clique em Alterar e faça o seguinte:
- Na guia Imagens públicas , clique na lista Sistema operacional e selecione SQL Server no Windows Server .
- Na lista Versão , clique em SQL Server 2022 Standard no Windows Server 2022 Datacenter .
- Na lista Tipo de disco de inicialização , clique em Disco permanente padrão .
- No campo Tamanho (GB) , defina o tamanho do disco de inicialização para 50 GB.
- Para salvar a configuração do disco de inicialização, clique em Selecionar .
Expanda a seção Opções avançadas e faça o seguinte:
- Expanda a seção Discos .
Para criar discos locais, clique em Adicionar SSD local e faça o seguinte:
- Na lista Interface , selecione o protocolo que atende aos requisitos de desempenho do seu sistema.
- Na lista Capacidade do disco , selecione uma capacidade de disco que suporte o tamanho previsto dos arquivos
tempdb
. - Para finalizar a criação deste disco, clique em Salvar .
Para criar discos adicionais, clique em Adicionar novo disco .
- Mantenha o campo Nome inalterado.
- Na lista Tipo de origem de disco , selecione Disco em branco .
- Na lista Tipo de disco , selecione Disco permanente SSD .
- No campo Tamanho , insira o tamanho do disco que pode acomodar o tamanho do banco de dados.
- Para finalizar a criação do segundo disco, clique em Salvar .
Para criar a VM, clique em Criar .
Configurando o Windows
Agora que você tem uma instância funcionando executando o SQL Server, conecte-se à sua instância e configure o sistema operacional Windows. Depois disso, você aprenderá a configurar o SQL Server em uma próxima seção.
Conecte-se à sua instância
No console do Google Cloud, acesse a página de instâncias de VM .
Na coluna Nome , clique no nome da sua instância,
ms-sql-server
.Na parte superior da página de detalhes da instância, clique no botão Definir senha do Windows .
Especifique um nome de usuário.
Clique em Definir para gerar uma nova senha para esta instância do Windows.
Anote o nome de usuário e a senha para poder fazer login na instância.
Conecte-se à sua instância usando RDP .
Configurando volumes de disco
Crie e formate os volumes:
- No menu Iniciar , pesquise “Gerenciamento do Computador” e abra-o.
- Na seção Armazenamento , selecione Gerenciamento de disco .
- Quando solicitado a inicializar os discos, aceite as seleções padrão e clique em OK .
Crie partição para discos SSD locais:
Para localizar um disco SSD local, clique com o botão direito em um disco e selecione Propriedades . O nome das propriedades do disco SSD local será
Google EphemeralDisk
para uma interface SCSI ounvme_card
para uma interface NVMe. Tanto os SSDs locais quanto os SSDs persistentes são marcados como tendo partiçõesUnallocated
.Se a VM contiver apenas uma unidade SSD local, siga estas etapas:
- Na lista de unidades de disco, clique com o botão direito no disco SSD local de 374,98 GB e selecione Novo volume simples .
- Na tela de boas-vindas, clique em Avançar para iniciar o assistente de volume de disco.
- Na etapa Especificar tamanho do volume , deixe o tamanho do volume no valor padrão e clique em Avançar para continuar.
- Na etapa Atribuir letra de unidade ou caminho , escolha P: para a letra da unidade e clique em Avançar para continuar.
Na etapa Formatar volume , altere o tamanho da unidade de alocação para 8192 e insira "pagefile" para o rótulo do volume . Clique em Avançar para prosseguir.
Clique em Concluir para concluir o assistente de volume de disco.
Se a VM contiver várias unidades SSD locais, siga estas etapas:
- Na lista de unidades de disco, clique com o botão direito no primeiro disco SSD local de 374,98 GB e selecione Novo volume distribuído .
- Na tela de boas-vindas, clique em Avançar para iniciar o assistente de volume de disco.
Na etapa Selecionar discos , adicione todos os discos disponíveis com tamanho de 383.982 MB à seção Selecionados. Clique em Avançar para prosseguir.
Na etapa Atribuir letra de unidade ou caminho , escolha P: para a letra da unidade e clique em Avançar para continuar.
Na etapa Formatar volume , altere o tamanho da unidade de alocação para 8192 e insira "pagefile" para o rótulo do volume . Clique em Avançar para prosseguir.
Clique em Concluir para concluir o assistente de volume de disco.
Repita as etapas anteriores para criar um novo volume simples para o disco SSD, com as três alterações a seguir:
Escolha D: para a letra da unidade.
Defina o tamanho da unidade de alocação como
64k
.Para obter detalhes sobre como selecionar um tamanho de unidade de alocação, consulte Práticas recomendadas para instâncias do SQL Server .
Insira
sqldata
para o rótulo do volume .
Movendo o arquivo de paginação do Windows
Agora que os novos volumes foram criados e montados, mova o arquivo de paginação do Windows para o SSD local, o que libera IOPS do disco permanente e melhora o tempo de acesso da sua memória virtual.
- No menu Iniciar , pesquise Exibir configurações avançadas do sistema e abra a caixa de diálogo.
- Clique na guia Avançado e na seção Desempenho , clique em Configurações .
- Na seção Memória virtual , clique no botão Alterar .
- Desmarque a caixa de seleção Gerenciar automaticamente o tamanho do arquivo de paginação para todas as unidades . O sistema já deve ter configurado seu arquivo de paginação na
C:\
e você precisa movê-lo. - Clique em C: e, em seguida, clique no botão de opção Sem arquivo de paginação .
- Clique no botão Definir .
- Para criar o novo arquivo de paginação, clique na unidade P: e, em seguida, clique no botão de opção Tamanho gerenciado pelo sistema .
- Clique no botão Definir .
Clique em OK três vezes para sair das propriedades avançadas do sistema.
O Suporte da Microsoft publicou dicas adicionais para configurações de memória virtual .
Configurando o perfil de energia
Defina o perfil de energia para High-Performance
em vez de Balanced
.
- No menu Iniciar , pesquise “Escolha um plano de energia” e abra as opções de energia.
- Selecione o botão de opção Alto desempenho .
- Saia da caixa de diálogo.
Configurando o SQL Server
Use o SQL Server Management Studio para executar a maioria das tarefas administrativas. As imagens pré-configuradas para SQL Server já vêm com o Management Studio instalado. Inicie o Management Studio e clique em Conectar para conectar-se ao banco de dados padrão.
Movendo os dados e arquivos de log
A imagem pré-configurada para SQL Server vem com tudo instalado na unidade C:\
, inclusive os bancos de dados do sistema. Para otimizar sua configuração, mova esses arquivos para a nova D:\
que você criou. Lembre-se também de criar todos os novos bancos de dados na D:\
. Como você está usando um SSD, não é necessário armazenar os arquivos de dados e de log em partições de disco separadas.
Existem duas maneiras de mover a instalação para o disco secundário: usando o instalador ou movendo os arquivos manualmente.
Usando o instalador
Para usar o instalador, execute c:\setup.exe
e selecione um novo caminho de instalação em seu disco secundário.
Movendo os arquivos manualmente
Mova os bancos de dados do sistema e configure o SQL Server para salvar os dados e arquivos de log no mesmo volume:
- Crie uma nova pasta chamada
D:\SQLData
. - Abra uma janela de comando.
Digite o seguinte comando para conceder acesso total ao
NT Service\MSSQLSERVER
:icacls D:\SQLData /Grant "NT Service\MSSQLServer:(OI)(CI)F"
Use o Management Studio e os guias a seguir para mover os bancos de dados do sistema e alterar os locais de arquivo padrão para novos bancos de dados.
Se você planeja usar os recursos do Report Server , mova também os arquivos ReportServer e ReportServerTempDB .
Depois de mover os arquivos do banco de dados de configuração primário e reiniciar, será necessário configurar o sistema para apontar para o novo local dos bancos de dados modelo e MSDB. Aqui está um script auxiliar para executar no Management Studio:
ALTER DATABASE model MODIFY FILE ( NAME = modeldev , FILENAME = 'D:\SQLData\model.mdf' ) ALTER DATABASE model MODIFY FILE ( NAME = modellog , FILENAME = 'D:\SQLData\modellog.ldf' ) ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData , FILENAME = 'D:\SQLData\MSDBData.mdf' ) ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBlog , FILENAME = 'D:\SQLData\MSDBLog.ldf' )
Depois de executar estes comandos:
- Use o snap-in
services.msc
para interromper o serviço de banco de dados SQL Server. - Use o explorador de arquivos do Windows para mover os arquivos físicos da
C:\
onde o banco de dadosmaster
estava localizado para o diretórioD:\SQLData
. - Inicie o serviço de banco de dados SQL Server.
Configurando permissões do sistema
Depois de mover os bancos de dados do sistema, modifique algumas configurações adicionais, começando com as permissões para a conta de usuário do Windows criada para executar o processo do SQL Server, chamada NT Service\MSSQLSERVER
.
Concedendo a permissão Lock Pages in Memory
A permissão de política de grupo Lock Pages in Memory
impede que o Windows mova páginas da memória física para a memória virtual. Para manter a memória física livre e organizada, o Windows tenta trocar páginas antigas e raramente modificadas para o arquivo de paginação da memória virtual no disco.
O SQL Server armazena informações importantes na memória, como estruturas de tabelas, planos de execução e consultas em cache. Algumas dessas informações raramente mudam, por isso se tornam um alvo para o arquivo de paginação. Se essas informações forem movidas para o arquivo de paginação, o desempenho do SQL Server poderá ser prejudicado. Conceder à política de grupo a permissão Lock Pages in Memory
para a conta de serviço do SQL Server evita essa troca.
Siga estas etapas:
- Clique em Iniciar e pesquise Editar Política de Grupo para abrir o console.
- Expanda Política de computador local > Configuração do computador > Configurações do Windows > Configurações de segurança > Políticas locais > Atribuição de direitos de usuário .
- Procure e clique duas vezes em Bloquear páginas na memória .
- Clique em Adicionar usuário ou grupo .
- Procure por "Serviço NT\MSSQLSERVER".
- Se você vir vários nomes, clique duas vezes no nome MSSQLSERVER .
- Clique em OK duas vezes.
- Mantenha o console do Editor de Política de Grupo aberto.
Concedendo a permissão Perform volume maintenance tasks
Por padrão, quando um aplicativo solicita uma fatia de espaço em disco do Windows, o sistema operacional localiza uma parte de espaço em disco de tamanho apropriado e zera toda a parte do disco antes de devolvê-la ao aplicativo. Como o SQL Server é bom para aumentar arquivos e preencher espaço em disco, esse comportamento não é ideal.
Existe uma API separada para alocar espaço em disco para um aplicativo, geralmente chamada de inicialização instantânea de arquivo . Infelizmente, essa configuração só funciona para arquivos de dados, mas você aprenderá em uma próxima seção sobre o crescimento de arquivos de log. A inicialização instantânea de arquivos exige que a conta de serviço que executa o processo do SQL Server tenha outra permissão de política de grupo, chamada Perform volume maintenance tasks
.
- No Editor de Política de Grupo , pesquise "Executar tarefas de manutenção de volume".
- Adicione a conta "NT Service\MSSQLSERVER" como fez na seção anterior.
- Reinicie o processo do SQL Server para ativar ambas as configurações.
Configurando tempdb
Costumava ser uma prática recomendada otimizar o uso da CPU do SQL Server criando um arquivo tempdb
por CPU. No entanto, como as contagens de CPU aumentaram com o tempo, seguir esta diretriz pode diminuir o desempenho. Como um bom ponto de partida, use 4 arquivos tempdb
. À medida que você mede o desempenho do seu sistema, em casos raros, pode ser necessário aumentar gradativamente o número de arquivos tempdb
até um máximo de 8.
Você pode executar um script Transact-SQL (T-SQL) dentro do SQL Server Management Studio para mover os arquivos tempdb
para uma pasta na unidade `p:`.
- Crie o diretório
p:\tempdb
. Conceda acesso de segurança total à conta de usuário "NT Service\MSSQLSERVER":
icacls p:\tempdb /Grant "NT Service\MSSQLServer:(OI)(CI)F"
Execute o seguinte script dentro do SQL Server Management Studio para mover o arquivo de dados
tempdb
e o arquivo de log:USE master GO ALTER DATABASE [tempdb] MODIFY FILE (NAME = tempdev, FILENAME = 'p:\tempdb\tempdb.mdf') GO ALTER DATABASE [tempdb] MODIFY FILE (NAME = templog, FILENAME = 'p:\tempdb\templog.ldf') GO
Reinicie o SQL Server.
Execute o script a seguir para modificar os tamanhos dos arquivos e criar três arquivos de dados adicionais para o novo
tempdb
.ALTER DATABASE [tempdb] MODIFY FILE (NAME = tempdev, FILENAME = 'p:\tempdb\tempdb.mdf', SIZE=8GB) ALTER DATABASE [tempdb] MODIFY FILE (NAME = templog, FILENAME = 'p:\tempdb\templog.ldf' , SIZE = 2GB) ALTER DATABASE [tempdb] ADD FILE (NAME = 'tempdev1', FILENAME = 'p:\tempdb\tempdev1.ndf' , SIZE = 8GB, FILEGROWTH = 0); ALTER DATABASE [tempdb] ADD FILE (NAME = 'tempdev2', FILENAME = 'p:\tempdb\tempdev2.ndf' , SIZE = 8GB, FILEGROWTH = 0); ALTER DATABASE [tempdb] ADD FILE (NAME = 'tempdev3', FILENAME = 'p:\tempdb\tempdev3.ndf' , SIZE = 8GB, FILEGROWTH = 0); GO
Se você usa o SQL Server 2016, há três arquivos
tempdb
adicionais para remover depois de executar as etapas anteriores:ALTER DATABASE [tempdb] REMOVE FILE temp2; ALTER DATABASE [tempdb] REMOVE FILE temp3; ALTER DATABASE [tempdb] REMOVE FILE temp4;
Reinicie o SQL Server novamente.
Exclua os arquivos
model
,MSDB
,master
etempdb
do local original na unidadeC:\
.
Você moveu com êxito seus arquivos tempdb
para a partição SSD local. Essa movimentação acarreta alguns riscos, mencionados anteriormente, mas se eles forem perdidos por qualquer motivo, o SQL Server recriará os arquivos tempdb
. A migração tempdb
oferece desempenho adicional do SSD local e diminui o IOPS usado nos discos permanentes.
Configurando max degree of parallelism
A configuração padrão recomendada para max degree of parallelism
é combiná-la com o número de CPUs no servidor. No entanto, há um ponto em que executar uma consulta em 16 ou 32 partes paralelas e mesclar os resultados é muito mais lento do que executá-la em um único processo. Se você estiver usando uma instância de 16 ou 32 núcleos, poderá definir o valor max degree of parallelism
como 8 usando o seguinte T-SQL:
USE master GO EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE WITH OVERRIDE GO EXEC sp_configure 'max degree of parallelism', 8 GO RECONFIGURE WITH OVERRIDE GO
Configurando max server memory
O padrão dessa configuração é um número muito alto, mas você deve configurá-la para o número de megabytes de RAM física disponível, menos alguns gigabytes para sistema operacional e sobrecarga. O exemplo T-SQL a seguir ajusta max server memory
para 100 GB. Modifique-o para ajustar o valor para corresponder à sua instância. Revise o documento de opções de configuração do servidor de memória do servidor para obter mais informações.
EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE WITH OVERRIDE GO exec sp_configure 'max server memory', 100000 GO RECONFIGURE WITH OVERRIDE GO
Terminando
Reinicie a instância mais uma vez para garantir que todas as novas configurações tenham efeito. Seu sistema SQL Server está configurado e você está pronto para criar seus próprios bancos de dados e começar a testar suas cargas de trabalho específicas. Revise o guia de práticas recomendadas do SQL Server para obter mais informações sobre atividades operacionais, outras considerações de desempenho e recursos da Enterprise Edition.
Limpar
Depois de concluir o tutorial, você poderá limpar os recursos criados para que eles parem de usar a cota e de incorrer em cobranças. As seções a seguir descrevem como excluir ou desativar esses recursos.
Excluindo o projeto
A maneira mais fácil de eliminar o faturamento é excluir o projeto que você criou para o tutorial.
Para excluir o projeto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Excluindo instâncias
Para excluir uma instância do Compute Engine:
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
Excluindo discos permanentes
Para excluir o disco permanente:
No console do Google Cloud, acesse a página Discos .
Marque a caixa de seleção ao lado do nome do disco que deseja excluir.
Clique no botão Excluir na parte superior da página.
O que vem a seguir
- Teste de carga em sua instância do SQL Server .
- Revise o guia de práticas recomendadas do SQL Server .
- Explore arquiteturas de referência, diagramas e práticas recomendadas sobre o Google Cloud. Dê uma olhada em nosso Centro de Arquitetura de Nuvem .