Monitoramento do SO - 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á.

Monitoramento do SO

Uma instância de banco de dados no Amazon RDS para MySQL ou MariaDB é executada no sistema operacional Linux, que usa recursos subjacentes do sistema: CPU, memória, rede e armazenamento.

MySQL [(none)]> SHOW variables LIKE 'version%'; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | version | 8.0.28 | | version_comment | Source distribution | | version_compile_machine | aarch64 | | version_compile_os | Linux | | version_compile_zlib | 1.2.11 | +-------------------------+---------------------+ 5 rows in set (0.00 sec)

O desempenho geral do banco de dados e do sistema operacional subjacente depende fortemente da utilização dos recursos do sistema. Por exemplo, a CPU é o componente chave para o desempenho do sistema, pois executa as instruções do software do banco de dados e gerencia outros recursos do sistema. Se a CPU for superutilizada (ou seja, se a carga exigir mais energia da CPU do que a provisionada para sua instância de banco de dados), esse problema afetará o desempenho e a estabilidade do seu banco de dados e, consequentemente, do seu aplicativo.

O mecanismo de banco de dados aloca e libera memória dinamicamente. Quando não há memória suficiente na RAM para fazer o trabalho atual, o sistema grava páginas de memória na memória de troca, que reside no disco. Como o disco é muito mais lento do que a memória, mesmo que o disco seja baseado na tecnologia SSD NVMe, a alocação excessiva de memória leva à degradação do desempenho. A alta utilização da memória causa maior latência das respostas do banco de dados, porque o tamanho de um arquivo de paginação aumenta para suportar memória adicional. Se a alocação de memória for tão alta que esgote os espaços de memória RAM e de troca, o serviço de banco de dados poderá ficar indisponível e os usuários poderão observar erros como[ERROR] mysqld: Out of memory (Needed xyz bytes).

Os sistemas de gerenciamento de banco de dados MySQL e MariaDB utilizam o subsistema de armazenamento, que consiste em discos que armazenamestruturas em discocomo tabelas, índices, registros binários, redo logs, registros de desfazer e arquivos de buffer de gravação dupla. Portanto, o banco de dados, ao contrário de outros tipos de software, deve realizar muitas atividades no disco. Para a operação ideal do seu banco de dados, é importante monitorar e ajustar a utilização de E/S do disco e a alocação do espaço em disco. O desempenho do banco de dados pode ser afetado quando o banco de dados atinge as limitações de IOPS ou taxa de transferência máxima suportada pelo disco. Por exemplo, surtos de acesso aleatório causados por uma verificação de índice podem causar um grande número de operações de I/O por segundo, o que eventualmente pode atingir as limitações do armazenamento subjacente. Os escaneamentos completos da tabela podem não atingir o limite de IOPS, mas podem causar uma alta taxa de transferência, medida em megabytes por segundo. É fundamental monitorar e gerar alertas sobre a alocação de espaço em disco, pois erros comoOS error code 28: No space left on devicepode causar indisponibilidade e corrupção do banco de dados.

O Amazon RDS fornece métricas em tempo real para o sistema operacional em que sua instância de banco de dados é executada. O Amazon RDS publica automaticamente um conjunto de métricas do sistema operacional paraCloudWatch. Essas métricas estão disponíveis para exibição e análise no console do Amazon RDS e noCloudWatchpainéis, e você pode definir alarmes nas métricas selecionadas emCloudWatch. Os exemplos incluem:

  • CPUUtilization— A porcentagem de utilização da CPU.

  • BinLogDiskUsage— A quantidade de espaço em disco que é ocupada pelos registros binários.

  • FreeableMemory— A quantidade de memória de acesso aleatório disponível. Isso representa o valor doMemAvailablecampo de/proc/meminfo.

  • ReadIOPS— O número médio de operações de E/S de leitura de disco por segundo.

  • WriteThroughput— O número médio de bytes gravados em disco por segundo para armazenamento local.

  • NetworkTransmitThroughput— O tráfego de rede de saída no nó de banco de dados, que combina o tráfego do banco de dados e o tráfego do Amazon RDS usado para monitoramento e replicação.

Para obter uma referência completa de todas as métricas publicadas pelo Amazon RDS,CloudWatch, vejaAmazôniaCloudWatchmétricas para o Amazon RDSna documentação do Amazon RDS.

O gráfico a seguir mostra exemplos deCloudWatchmétricas do Amazon RDS que são exibidas no console do Amazon RDS.

CloudWatchmétricas do Amazon RDS exibidas no console do Amazon RDS

O gráfico a seguir mostra métricas semelhantes exibidas naCloudWatchpainel de controle.

CloudWatchmétricas do Amazon RDS que são exibidas noCloudWatchconsole

O outro conjunto de métricas do sistema operacional é coletado porMonitoramento aprimoradopara o Amazon RDS. Essa ferramenta oferece uma visibilidade mais profunda da integridade de suas instâncias de banco de dados Amazon RDS para MariaDB e Amazon RDS para MySQL, fornecendo métricas do sistema em tempo real e informações do processo do sistema operacional. Quando vocêativar o monitoramento aprimoradoem sua instância de banco de dados e define a granularidade desejada, a ferramenta coleta as métricas do sistema operacional e as informações do processo, que você pode exibir e analisar noConsole Amazon RDS, conforme mostrado na tela a seguir.

Métricas do sistema operacional coletadas pelo monitoramento aprimorado

Algumas das principais métricas fornecidas pelo Enhanced Monitoring são:

  • cpuUtilization.total— A porcentagem total da CPU em uso.

  • cpuUtilization.user— A porcentagem de CPU em uso pelos programas do usuário.

  • memory.active— A quantidade de memória atribuída, em kilobytes.

  • memory.cached— A quantidade de memória usada para armazenar em cache a E/S baseada no sistema de arquivos.

  • loadAverageMinute.one— O número de processos que solicitaram tempo de CPU durante o último minuto.

Para obter uma lista completa de métricas, consulteMétricas do sistema operacional no monitoramento aprimoradona documentação do Amazon RDS.

No console do Amazon RDS, a lista de processos do sistema operacional fornece detalhes de cada processo em execução na sua instância de banco de dados. A lista está organizada em três seções:

  • Processos do sistema operacional‒ Esta seção representa um resumo agregado de todos os processos do kernel e do sistema. Esses processos geralmente têm um impacto mínimo no desempenho do banco de dados.

  • Processos RDS— Esta seção representa um resumo doAWSprocessos que são necessários para dar suporte a uma instância de banco de dados Amazon RDS. Por exemplo, inclui o agente de gerenciamento do Amazon RDS, processos de monitoramento e diagnóstico e processos similares.

  • Processos infantis do RDS— Esta seção representa um resumo dos processos do Amazon RDS que oferecem suporte à instância de banco de dados ― neste caso, omysqldprocesso e seus fios. Omysqldos fios aparecem aninhados abaixo do paimysqldprocesso.

A ilustração da tela a seguir mostra a lista de processos do sistema operacional no console do Amazon RDS.

Lista de processos do sistema operacional no console do Amazon RDS

O Amazon RDS fornece as métricas do monitoramento aprimorado em seuCloudWatchConta de registros. Os dados de monitoramento que são exibidos no console do Amazon RDS são recuperados deCloudWatchRegistros. Você também poderecuperar as métricas de uma instância de banco de dados como um fluxo de logdesdeCloudWatchRegistros. Essas métricas são armazenadas no formato JSON. Você pode consumir a saída JSON do Enhanced Monitoring doCloudWatchRegistra um sistema de monitoramento de sua escolha.

Para exibir gráficos noCloudWatchpainel e crie alarmes que iniciariam uma ação se uma métrica violasse o limite definido, você deve criar filtros métricos noCloudWatchdesdeCloudWatchRegistros. Para obter instruções detalhadas, consulte oArtigo do AWS Re:postsobre como filtrar o monitoramento aprimoradoCloudWatchRegistros para gerar métricas personalizadas automatizadas para o Amazon RDS.

O exemplo a seguir ilustra a métrica personalizadaCPU.UsernaCustom/RDSnamespace. Essa métrica personalizada é criada filtrando ocpuUtilization.userMétrica de monitoramento aprimorada deCloudWatchRegistros.

Métrica personalizada CPU.User

Quando a métrica está disponível noCloudWatchrepositório, você pode exibi-lo e analisá-lo emCloudWatchpainéis, aplique mais operações matemáticas e de consulta e defina um alarme para monitorar essa métrica específica e gerar alertas se os valores observados não estiverem de acordo com as condições de alarme definidas.