Estudo de Caso IV – Parte 1
Estudo de Caso IV – Parte 1
No Post de hoje, vamos falar sobre monitoramento pontual, mas o que é isso: O monitoramento pontual é a melhor forma de se realizar ajustes finos e detectar gargalos. Vamos aprender a usar algumas ferramentas, mas antes vamos entender melhor os recursos do S.O..
Recursos do S.O.
Os recursos utilizados pelo PostgreSQL são gerenciados pelo sistema operacional. Para se compreender o que está acontecendo com o PostgreSQL, às vezes, é necessário saber se a questão não reside em alguns desses recursos.
Os recursos mais importantes a monitorar são estatísticas dos discos, memória e CPU. Outras estatísticas podem ser importantes em alguns cenários como rede, processos, swap e IPC – Inter-Process Communications.
Para que seja possível um monitoramento eficaz, é muito importante que o administrador conheça os limites de cada um dos itens. Em alguns casos, a métrica de porcentagem já expõe quanto de um recurso está em uso ou ainda está disponível. Em algumas outras medidas, como estatísticas de I/O, os limites terão de ser determinados experimentalmente.
Ferramentas – top
O “top” é uma ferramenta muito popular no mundo Unix/Linux, traz uma visão geral estado do S.O. no momento. Ele apresenta um snapshot de 3 em 3 segundos de várias informações de sistema.
Para que seja possível um monitoramento eficaz, é muito importante que o administrador conheça os limites de cada um dos itens. Em alguns casos, a métrica de porcentagem já expõe quanto de um recurso está em uso ou ainda está disponível. Em algumas outras medidas, como estatísticas de I/O, os limites terão de ser determinados experimentalmente.
No seu cabeçalho o podemos destacar as seguintes informações:
- Carga média: – A carga média do sistema é resumidamente a média exponencial da soma dos processos na fila de execução que estão aguardando mais os processos em execução no momento. Ela é mostrada no item “load average”no formato de “último minuto:5 min: 15 min”. Um número muito maior que o número de processadores pode representar problemas.
- Número de processos: É mostrado no item “Tasks“.
- Número de processos: Uso de CPU: O uso de CPU por aplicações é apresentado na coluna “%us” da linha “CPU”.
- Espera por IO: Representa a porcentagem de tempo gasto de CPU aguardando por operações IO, números altos indicam que podem estar ocorrendo gargalos de discos. É apresentado na coluna “%wa” da linha “CPU”
- Uso de swap: É apresentado na coluna “used” da linha “Swap”. Lembrando que o uso de swap deve sempre ser evitado.
Na lista de processos destaca-se as seguintes informações:
- Uso de memória residente: – Apresentado na coluna “RES”, este valor mostra o quanto de memória física o processo esta efetivamente usando.
- Uso de memória compartilhada: – Apresentado na coluna “SHR”, este valor mostra a quantidade de memória compartilhada utilizada pelo processo.
- Porcentagem de uso de CPU: – Apresentado na coluna %CPU.
- Porcentagem de uso de memória: – Apresentado na coluna %MEM.
Ferramentas – free
O comando free é muito popular em ambientes Unix. Mas ele pode ser mal interpretado para administradores desavisados. Vejamos um exemplo do mesmo:
total used free shared buffers cached
Mem: 5767 1972 3794 0 113 947
-/+ buffers/cache: 912 4854
Swap: 5937 0 5937
A opção -m é usada para mostrar os valores em MB ao invés de bytes (pode-se usar -g para GB também).É importante frisar que a linha que devemos mais prestar atenção para saber o quanto de memória usada e livre o sistema tem é a segunda! Esta linha desconta o uso de buffers e cached memory, e indica o quanto realmente os processos estão consumindo.
O Linux (e outros Unix) tem a tendência de usar a memória disponível para cache de disco e buffers de rede. A coluna cached da primeira linha indica o quanto de cache de disco o S.O. está alocando, e este cache é usado para evitar I/O de disco em leituras e portanto muito importante para um banco de dados. A existência deste cache é um dos motivos que não há necessidade de se alocar tanto shared buffer o possível no PostgreSQL.
Ferramentas – ps
Outra ferramenta muito usada pelos administradores de sistema, mas raramente explorada em sua totalidade é o ps, capaz de mostrar os processos na memória e o consumo de recursos dos mesmos. O ps pode por exemplo ser usado para filtrar somente as informações pertinentes do sistema com a opção o. O exemplo abaixo indica os processos que estão na memória do PostgreSQL somente com o uso de CPU e memória.
PID S %CPU %MEM CMD
1114 S 0.0 0.2 /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/post
1365 S 0.0 0.0 postgres: checkpointer process
1366 S 0.0 0.0 postgres: writer process
1367 S 0.0 0.0 postgres: wal writer process
1368 S 0.0 0.0 postgres: autovacuum launcher process
1369 S 0.0 0.0 postgres: archiver process archiving 00000001000000
1370 S 0.0 0.0 postgres: stats collector process
Com o ps também é possível saber a quantidade de conexões abertas somente mandando contar suas linhas e descontando os processos fixos.
8
No exemplo acima é possível concluir que existe um conexão aberta, pois descontando o número de processos fixos (6) mais o cabeçalho temos o número 1.
Conclusão
Neste post de hoje, vimos algumas das ferramentas para monitoramento pontual, no próximo post, falaremos mais sobre outras ferramentas e como usá-las.
Related
Tags In
aquino.vale
Categorias
- AI (1)
- Big Data (18)
- Cloud (3)
- Dados Abertos (2)
- Devops (7)
- Liderança (6)
- Linux (13)
- Modelagem (6)
- MongoDB (1)
- NoSQL (11)
- PostgreSQL (26)
- Sem categoria (1)