

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 sistema operacional
<a name="os-monitoring"></a>

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)
```

A performance geral do banco de dados e do sistema operacional subjacente depende muito da utilização dos recursos do sistema. Por exemplo, a CPU é o componente chave para a performance 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 potência de CPU do que a provisionada para sua instância de banco de dados), esse problema afetará a performance e a estabilidade do seu banco de dados e, consequentemente, da sua aplicação.

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 swap, que reside no disco. Como o disco é muito mais lento que a memória, mesmo que seja baseado na tecnologia SSD NVMe, a alocação excessiva de memória leva à degradação da performance. 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 tanto a RAM quanto os espaços de memória swap, 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 armazenam [estruturas em disco](https://dev.mysql.com/doc/refman/8.0/en/innodb-architecture.html), como tabelas, índices, logs binários, logs de redo, logs de undo e arquivos de buffer de doublewrite. Portanto, o banco de dados, ao contrário de outros tipos de software, deve realizar muita atividade 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 de espaço em disco. A performance do banco de dados pode ser afetada quando o banco de dados atinge os limites de IOPS ou o throughput máximo suportado pelo disco. Por exemplo, expansões de acesso aleatório causados por uma verificação de índice podem causar um grande número de operações de E/S por segundo, o que eventualmente pode atingir as limitações do armazenamento subjacente. As verificações completas das tabelas podem não atingir o limite de IOPS, mas podem causar um alto throughput mensurado em megabytes por segundo. É fundamental monitorar e gerar alertas sobre a alocação de espaço em disco, pois erros como `OS error code 28: No space left on device` podem 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 no CloudWatch. Essas métricas estão disponíveis para exibição e análise no console do Amazon RDS e nos painéis do CloudWatch, e você pode definir alarmes nas métricas selecionadas no CloudWatch. Os exemplos incluem:
+ `CPUUtilization`: o percentual de utilização da CPU.
+ `BinLogDiskUsage`: o volume do espaço em disco ocupado por logs binários.
+ `FreeableMemory`: a quantidade de memória de acesso aleatório disponível. Isso representa o valor do campo `MemAvailable` de `/proc/meminfo`.
+ `ReadIOPS`: o número médio de operações E/S de leitura de disco por segundo.
+ `WriteThroughput`: o número médio de bytes gravados no disco por segundo para o armazenamento local.
+ `NetworkTransmitThroughput`: o tráfego de rede de saída no nó do banco de dados, que combina o tráfego de 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 no CloudWatch, consulte as [métricas do Amazon CloudWatch para o Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html) na documentação do Amazon RDS.

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

![\[Métricas do CloudWatch para o Amazon RDS exibidas no comsole do Amazon RDS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/cloudwatch-metrics-rds-console.png)


O gráfico a seguir mostra métricas semelhantes exibidas no painel do CloudWatch.

![\[Métricas do CloudWatch para o Amazon RDS que são exibidas no console do CloudWatch\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/cloudwatch-metrics-cw-console.png)


O outro conjunto de métricas do sistema operacional é coletado pelo [Monitoramento Aprimorado](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html) para Amazon RDS. Essa ferramenta oferece uma visibilidade mais profunda da integridade de suas instâncias de banco de dados do Amazon RDS para MariaDB e Amazon RDS para MySQL, fornecendo métricas do sistema em tempo real e informações sobre o processo do sistema operacional. Quando você [habilita o Monitoramento Aprimorado](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html) em 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 no [console do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html), conforme mostrado na tela a seguir.

![\[Métricas do sistema operacional coletadas pelo Monitoramento Aprimorado\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/enhanced-monitoring.png)


Algumas das principais métricas fornecidas pelo Monitoramento Aprimorado são:
+ `cpuUtilization.total`: a porcentagem total da CPU em uso.
+ `cpuUtilization.user`: a porcentagem de CPU em uso por programas do usuário.
+ `memory.active`: a quantidade de memória atribuída, em kilobytes.
+ `memory.cached`: a quantidade de memória utilizada para o armazenamento em cache da E/S baseada no sistema de arquivos.
+ `loadAverageMinute.one`: o número de processos que solicitaram tempo de CPU no último minuto.

Para obter uma lista completa de métricas, consulte as [Métricas do sistema operacional no Monitoramento Aprimorado](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring-Available-OS-Metrics.html) na documentação do Amazon RDS.

No console do Amazon RDS, a lista de processos do sistema operacional fornece detalhes de cada processo que está sendo executado 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 impacto mínimo na performance do banco de dados.
+ **Processos do RDS**: esta seção representa um resumo dos processos necessários da AWS para oferecer suporte a uma instância de banco de dados do Amazon RDS. Por exemplo, inclui o agente de gerenciamento do Amazon RDS, processos de monitoramento e diagnóstico e processos similares.
+ **Processos secundários do RDS**: esta seção representa um resumo dos processos do Amazon RDS que oferecem suporte à instância de banco de dados, nesse caso, o processo `mysqld` e seus threads. Os threads do `mysqld` aparecem aninhados abaixo do processo principal do `mysqld`.

A ilustração de 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\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/os-process-list.png)


O Amazon RDS entrega as métricas do Monitoramento Aprimorado à sua conta do Amazon CloudWatch Logs. Os dados de monitoramento que são mostrados no console do Amazon RDS são recuperados do CloudWatch Logs. Você também pode [recuperar as métricas para uma instância de banco de dados como um fluxo de logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.CloudWatchLogs.html) do CloudWatch Logs. Essas métricas são armazenadas no formato JSON. É possível consumir o resultado do JSON de monitoramento avançado do CloudWatch Logs em um sistema de monitoramento de sua escolha.

Para exibir grafos no painel do CloudWatch e criar alarmes que iniciarão uma ação se uma métrica ultrapassar o limite definido, você deve criar filtros de métricas no CloudWatch do CloudWatch Logs. Para obter instruções detalhadas, consulte o [artigo do AWS re:Post](https://repost.aws/knowledge-center/custom-cloudwatch-metrics-rds) sobre como filtrar os logs de Monitoramento Aprimorado do CloudWatch para gerar métricas personalizadas automatizadas para o Amazon RDS.

O exemplo a seguir ilustra a métrica personalizada `CPU.User` no namespace `Custom/RDS`. Essa métrica personalizada é criada filtrando a métrica `cpuUtilization.user` do Monitoramento Aprimorado do CloudWatch Logs.

![\[Métrica CPU.User personalizada\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/cpu-user-custom-metric.png)


Quando a métrica está disponível no repositório do CloudWatch, você pode exibi-la e analisá-la nos painéis do CloudWatch, aplicar mais operações matemáticas e de consulta e definir 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.