Estudo de Caso IV – Parte 3

No Post de hoje, vamos finalizar nosso estudo de caso, com uma ferramenta própria do postgres para monitoramento

Postgres

Temos estatísticas de uso dos objetos e recursos disponibilizadas pelo coletor de estatísticas. Sendo disponibilizadas através de visões no catálogo do sistema. As seguintes visões estão disponíveis:

  • pg_stat_activity – diversas informações sobre as sessões atuais.
  • pg_stat_bgwriter – informações sobre o background writer tais como números de pontos de controle – checkpoints e buffers escritos.
  • pg_stat_database – informações sobre a atividade nos bancos de dados como transações, buffers e operações.
  • pg_stat_all,user,sys_tables – informações sobre a atividade nas tabelas como número de operações, execução manual ou automática de VACUUM e ANALYZE e uso de índices
  • pg_stat_all,user,sys_indexes – informações sobre a atividade dos índices
  • pg_statio_all,user,sys_tables – informações sobre a quantidade de I/O nas tabelas como blocos lidos do disco e blocos lidos da cache
  • pg_statio_all,user,sys_indexes – informações sobre a quantidade de I/O nos índices
  • pg_statio_all,user,sys_sequences – informações sobre a quantidade de I/O em sequências.
    • pagila =# select datname , numbackends , xact_commit , xact_rollback ,
      blks_read , blks_hit from pg_stat_database ;

      datname | numbackends | xact_commit | xact_rollback | blks_read |
      blks_hit

      – – – – – – – – – – – – – – – – – -+ – – – – – – – – – – – – -+ – – – – – – – – – – – – -+ – – – – – – – – – – – – – – -+ – – – – – – – – – – -+ – – – – –
      template0 | 0 | 0 | 0 |0 | 0
      postgres | 0 | 14025 | 1 |3276 |287510
      template1 | 0 | 0 | 0 |0 | 0
      pgpool | 0 | 6604 |45 | 904 |168854
      pgbench | 0 | 3834 | 0 |3432 | 86392
      pagila | 1 |841 | 0 |1381 |270099

      (6 rows )

      As informações disponíveis são em tempo real. O PostgreSQL não tem nenhum mecanismo de coleta automatizada desses dados. Certamente, é possível fazer um shell script capaz de coletar dados periodicamente e gravá-los em um arquivo. As informações sobre tabelas, índices e sequências só estarão disponíveis quando se está conectado no banco de dados que os contém. Um exemplo de script para coletar diversos dados segue a seguir. A saída do script pode ser direcionada para um arquivo de texto e informações podem ser coletadas indefinidamente até que a execução do script seja parada.

      pg_top

      O pg_top desempenha uma função similar ao top do UNIX, contudo, o pg_top monitora somente processos do PostgreSQL. Ele apresenta informações sobre estatísticas, consultas executadas no momento e planos de execução. Exibe também algumas informações do sistema operacional sobre CPU, memória e I/O.

      root@servidor :~ # aptitude install ptop
      root@servidor :~ # exit
      postgress@servidor :~ $ pg_top
      Alguns sistemas operacionais já tem um pacote para o pg_top. Lembre-se de usar o pg_top com um usuário que existe no banco.

      Conclusão

      Neste post, vimos mais ferramentas para monitoramento e finalizamos nosso estudo de caso. No próximo estudo de caso falaremos sobre monitoramento contínuo falando sobre ferramentas como o SAR. Aguardem nosso próximo estudo de caso.