sexta-feira, 15 de janeiro de 2021

Administração do Linux para DBA's do SQL Server: Verificando I/O De Disco


      Com o lançamento do SQL Server, a Microsoft decidiu expandir o suporte do sistema operacional para servidores Linux. Nós, como administradores de banco de dados, precisamos saber o desempenho dos subsistemas de discos subjacentes. Como a maioria dos administradores do SQL Server não está acostumada a trabalhar com Linux, você pode não saber como fazer esta tarefa. Nessa dica vou mostrar algumas ferramentas que vão te ajudar.

Uma das funções de um administrador de banco de dados é garantir que o subsistema de armazenamento que suporta nossos bancos de dados esteja funcionando corretamente. Obviamente, temos as visualizações e funções de gerenciamento dinâmico de I/O, como sys.dm_io_pending_io_requests e sys.dm_io_virtual_file_stats , mas às vezes isso não é suficiente. Na verdade, estamos acostumados a olhar para contadores de desempenho relacionados ao disco em servidores em execução no Windows e até mesmo usar outras ferramentas.

Ferramentas Linux Disponíveis

Agora que o SQL Server também funciona no Linux, devemos nos familiarizar com as ferramentas existentes que nos permitirão fazer nosso trabalho exatamente como fazemos no Windows.

iostat

Este é o comando mais básico para verificar a I / O do disco e geralmente você o instalará por padrão, mas se não, poderá instalar o pacote sysstat que inclui a ferramenta iostat.

apt-get install sysstat
   

Basicamente, este comando mostra estatísticas de CPU e I / O para dispositivos e partições como dois relatórios separados, mas com os argumentos –c e –d você pode forçá-lo a exibir apenas o relatório de CPU ou de dispositivos, respectivamente. Para os fins desta dica, vou concentrar a atenção no relatório de I / O.

Como você pode ver na imagem anterior o comando mostra uma tabela com uma linha para cada dispositivo instalado e quatro colunas que nos informa sobre a Transferência por Segundo (tps), leituras e gravações por segundo expressas em kilobytes e a quantidade de kilobytes lidos e escrito.

Até agora, vimos uma imagem estática de nosso desempenho de I / O, mas este comando também nos permite mantê-lo em execução em um intervalo de tempo especificado (em segundos). Quando executamos iostat com um intervalo, ele muda seu comportamento e, para cada execução, mostra o delta de leituras e gravações da execução anterior. O comando a seguir mostra a cada quatro segundos o relatório de uso do dispositivo até que Control + C seja pressionado.

iostat –d 4
   

Na captura de tela a seguir é o resultado da execução do comando anterior.

Mas essa ferramenta já possui mais recursos. Quando iostat é executado com o parâmetro –x, ele retorna estatísticas estendidas. As estatísticas mais úteis estão nas colunas avgqu-sz, que é o comprimento médio da fila; e uma espera que se refere ao tempo gasto na fila e no atendimento a uma solicitação. Abaixo estão duas capturas de tela com a saída deste comando.


Na próxima tabela, copiei a descrição da página de manual de cada coluna das imagens.


Descrição

rrqm / s

O número de solicitações de leitura mescladas por segundo que foram enfileiradas no dispositivo.

wrqm / s

O número de solicitações de gravação mescladas por segundo que foram enfileiradas no dispositivo.

r / s

O número de solicitações de leitura emitidas para o dispositivo por segundo.

w / s

O número de solicitações de gravação emitidas para o dispositivo por segundo.

rkB / s

O número de kilobytes lidos do dispositivo por segundo.

wkB / s

O número de kilobytes gravados no dispositivo por segundo.

avgrq-sz

O tamanho médio (em setores) das solicitações que foram emitidas para o dispositivo.

avgqu-sz

O comprimento médio da fila de solicitações emitidas para o dispositivo.

await

O tempo médio (em milissegundos) para solicitações de E / S emitidas para o dispositivo a ser atendido. Isso inclui o tempo gasto pelas solicitações na fila e o tempo gasto atendendo-as.

r_await

O tempo médio (em milissegundos) para que as solicitações de leitura emitidas para o dispositivo sejam atendidas. Isso inclui o tempo gasto pelas solicitações na fila e o tempo gasto atendendo-as.

w_await

O tempo médio (em milissegundos) para que as solicitações de gravação emitidas para o dispositivo sejam atendidas. Isso inclui o tempo gasto pelas solicitações na fila e o tempo gasto atendendo-as.

svctm

O tempo médio de serviço (em milissegundos) para solicitações de E / S que foram emitidas para o dispositivo. Atenção! Não confie mais neste campo. Este campo será removido em uma versão futura do sysstat.

%util

Porcentagem de tempo de CPU durante o qual as solicitações de E / S foram emitidas para o dispositivo (utilização da largura de banda do dispositivo). A saturação do dispositivo ocorre quando este valor está próximo a 100%.

iotop

Este utilitário exibe o uso de I/O por processo ou threads em uma grade interativa que se assemelha ao utilitário htop.


Como você pode ver na imagem anterior, este utilitário mostra os threads ou processos (mostrarei como alternar entre os dois quando descrever seus argumentos). A maioria das colunas é autoexplicativa, apenas para mencionar que a coluna IO lista a I / O total para cada processo, incluindo uso de disco e troca; e SwapIn lista a atividade de troca para cada processo.

A seguir está uma tabela com os parâmetros mais usados.


Descrição

-o

Mostra apenas processos ou threads que estão realmente fazendo I / O, em vez de mostrar todos os processos ou threads. Isso pode ser alternado dinamicamente pressionando o.

-b

Ative o modo não interativo (modo em lote). Útil para registrar o uso de I / O ao longo do tempo.

-P

Mostrar apenas processos. Normalmente o iotop mostra todos os tópicos.

-a

Mostra I / O acumulada em vez de largura de banda. Nesse modo, o iotop mostra a quantidade de processos de I / O realizados desde que o iotop foi iniciado.

Mas sendo iotop um utilitário interativo, existem alguns atalhos de teclado que são úteis.



Descrição

setas esquerda e direita

Altera a coluna de classificação.

r

Inverte a ordem de classificação.

o

Mostra apenas processos ou threads que estão realmente fazendo I / O.

p

Mostre processos em vez de threads.

a

Exibir I / O acumulada em vez de largura de banda.

Eu

Altera a prioridade de um thread ou processo.

Fique ligado para mais dicas do SQL Server no Linux .

Um comentário:

  1. Casino at Borgata - Mapyro
    Address: 898 Borgata Blvd. S. Atlantic City, 창원 출장안마 NJ 08401. Check-in Time: 12:00 pm. Check-out Time: 나주 출장안마 11:00 am. Phone Number: (609) 317-5000. Fax 대전광역 출장마사지 Number: (609) 317-5000. 밀양 출장샵 Fax  Rating: 2.9 · ‎2,997 김제 출장마사지 votes

    ResponderExcluir