IBTransaction Monitor – Guia de Usuário


De que é composto ?

O pacote do IBTM contém três módulos principais:
  • Monitor – Um pequeno programa Win32 que roda como serviço para monitorar e gravar os estados das transações de uma ou mais bases de dados.
  • Configuration Assistant (Assistente de Configuração) Para configurar as opções do Monitor e do Viewer.
  • Visualizer (Visualizador) Feito para visualizar e analisar a informação gravada pelo Monitor.

Monitor

O Monitor é um pequeno programa Win32 que roda como serviço (ibtm.exe), nas plataformas Windows NT, 2000, XP e Windows 2003. Ao iniciar o Monitor lê as configurações (definidas pelo Configuration Assistant) e monitora os bancos de dados especificados. Durante o monitoramento é feita uma conexão com o banco de dados a cada minuto (intervalo padrão recomendado) e lê o estado das transações.
Se o InterBase ou Firebird está rodando no Windows, o monitor pode ser instalado no próprio servidor onde o banco de dados está. Para servidores baseados em Linux, ele pode ser instalado em qualquer estação com Windows que tenha acesso via rede ao servidor Interbase ou Firebird. Pode-se instalar o Monitor usando os seguintes métodos:
  1. Usando o Configuration Assistant
  2. Usando a linha de comando (Command Shell Window)
Importante! Antes de iniciar a instalação do Monitor é importante se assegurar de que esteja logado no Windows com uma conta com direitos e privilégios de Administrador. O Monitor será instalado como um serviço com início automático na conta de usuário Localsystem.
Uma vez que o Monitor somente se conecta periodicamente ao banco de dados e grava as informações recuperadas em um arquivo de log de texto puro, não há necessidade de criar nenhuma regra adicional. Porém, se você deseja aumentar a segurança do Monitor em relação aos dados de configuração e login no banco de dados, você deverá modificar as configurações do serviço do Monitor e do seu diretório (e do diretório onde é gravado o arquivo de log) de acordo com sua necessidade utilizando o Painel de Controle de Serviços do Windows.
Os parâmetros de configuração do Monitor será discutidos na seção sobre o Configuration Assistant.

O que está sendo gravado ?

O Monitor periodicamente verifica a Header Page do banco de dados e então armazena as informações referentes as transações no arquivo de log, da seguinte maneira:
  • Log time (Momento da informação)
  • Oldest transaction number (Número da Oldest transaction)
  • Oldest snapshot transaction number (Número da Oldest Snapshot transaction)
  • Oldest Active transaction number (Número da Oldest Active transaction)
  • Next transaction number (Número da Next Transaction)
  • Active transactions count (Número de transações ativas – Depende da versão do servidor)
Estas informações são armazenadas no arquivo de log, e podem ser visualizadas e analisadas usando o Visualizer. Usando a visualização das informações dos estados das transações você pode entender por quanto tempo suas aplicações mantém as transações abertas, quantas transações simultâneas são executadas, por quanto tempo as transações do tipo Snapshot são executadas, quando é o período de maior atividade em que as aplicações iniciam as transações, etc.
Nota: O Monitor grava as informações do estado das transações em um arquivo local. Estas informações, bem como qualquer outra, não são enviadas pela rede.

Configuration Assistant

O Configuration Assistant (ibtmconfig.exe) é usado para definir os parâmetros de configuração para o Monitor e o Viewer. Ele salva os parâmetros de configuração no arquivo ibtm.ini.
No Windows Vista ou Windows 7 você precisa rodar o Configuration Assistant com privilégios administrativos (clicando com botão direito do mouse), ou não será possível gerenciar o serviço do IBTM service (Erro 5, acesso negado [Error 5, access denied]).
Dica ! O IBTM não usa o Registry para armazenar os parâmetros de configuração, desta forma você pode preparar a configuração em um computador e então copiar o arquivo ibtm.ini para outro computador onde o Monitor esteja instalado (O serviço do Monitor precisa ser re-iniciado para que sejam lidas as novas configurações).
O instalador do IBTM coloca os arquivos do Monitor e do Configuration Assistant no mesmo diretório IBTM, desta forma eles compartilham o mesmo arquivo de configuração (ibtm.ini).

Usando o Configuration Assistant



O Configuration Assistant te auxilia a
  • Gerenciar o serviço do Monitor – instalar, remover, iniciar, parar, pausar e re-iniciar o serviço.
  • Especificar quais servidores InterBase ou Firebird possuem bancos de dados que precisam ser monitorados
  • Especificar quais bancos de dados e opções de agendamento e monitoramento para os bancos de dados de forma particular

Gerenciando o serviço do Monitor

IBTM service stopped
Quando o Configuration Assistant inicia, ele determina o estado do serviço do Monitor no sistema.
Instalando o Monitor – Se o serviço do Monitor não estiver instalado, você verá a mensagem "not installed" (“não instalado”) no texto de estado do IBTM no canto superior esquerdo. Para instalar o Monitor clique no botão Install (Instalar) no lado direito da janela. Note que o serviço do Monitor usara o tipo de inicialização (automática ou manual) definido no checkbox. Se a instalação do serviço do Monitor for feita com sucesso você verá o estado do IBTM mudar para “stopped” (“parado”) e o botão "Run service" (“Executar o serviço”) será habilitado.
Você precisará re-iniciar o serviço do Monitor toda vez que modificar os parâmetros de configuração de qualquer base de dados.

Configurando Servidores

O IBTM usa o protocolo de comunicação TCP/IP para acessar as bases de dados para monitoramento. Portanto, se você instalou o Monitor no mesmo computador em que o servidor de banco de dados está você precisa adicionar o servidor como localhost ou com o nome do computador hospedeiro do serviço (host name). Uma vez feito isso você poderá adicionar bases de dados que serão monitoradas neste servidor.

Configurando bases de dados

Com está versão do IBTM você poderá monitorar apenas um servidor. Por favor, contate-nos para maiores detalhes (support@ib-aid.com).
Use os botões Add Server (adicionar servidor) e Add Database (adicionar base de dados) no lado esquerdo da lista de bases de dados.
Cada registro de base de dados pode ser configurado com os seguintes parâmetros:
Método de aquisição das estatísticas. Depende de cada versão do servidor e oferece diferentes características. Cada método será descrito mostrando os prós e os contras:


Services API
Firebird API
Tabela TMP$
InterBase 4.x/5.x
não
não
não
InterBase 6.0 Classic
não
não
não
Firebird Classic - 1.0, 1.5.0, 1.5.1, 1.5.2
não
sim
não
InterBase 6.x SuperServer
sim
não
não
InterBase 7.x, 2007, 2009, XE
sim
não
sim
Firebird Classic e SuperServer: 1.5.3, 1.5.4 /2.0
sim
sim
não
Diferenças entre Services API, Firebird API e tabela TMP$:


Método
Prós
Contras
Services API
API publica que foi introduzida no InterBase 6.0 SuperServer
  • Método universal, funciona com todas as versões do Interbase ou Firebird
  • Não afeta o valor de Next transaction
  • Não oferece a capacidade de saber quantidade real de transações ativas
  • Pode mostrar informações desatualizadas se o servidor não gravar com frequência a página de header da base de dados em disco (InterBase 7.x, 2007, 2009, XE)
Firebird API
Firebird a partir da versão V1.0 possui parâmetros adicionais para a chamada isc_database_info call, que permite o retorno de informação do estado da transação
Permite que seja apurada a informação da quantidade de transações ativas (não mais do que 4676 transações ativas)
  • Não é suportado por nenhuma versão do InterBase
  • Internamente incrementa o contador Next transaction. O Monitor incrementá o contador Next transaction em 1 cada vez que se conectar a base de dados. Se não existir nenhuma transação ativa na base de dados neste momento o contador Oldest Active, Oldest Snapshot e Oldest transaction não serão modificados.
    Se não existir qualquer atividade na base de dados, o Monitor por si só, incrementará o contador Next transaction em 1440 em 24 horas, se estiver configurado para verificar a base de dados a cada minuto.
    (A API do Firebird não tem está característica. Este comportamento é específico do método isc_database_info)
Tabelas TMP$Foram introduzidas no InterBase 7.0 para permitir o monitoramento do estado do servidor
  • Permite o obtenção do estado atual das transações no InterBase 7.x, 2007, 2009, XE, incluindo a contagem de transações ativas.
  • Para obter as informações sobre o estado das transações o Monitor inicia uma transação com os parâmetros read_only read_committed rec_version. Este tipo de transação não é tratada como uma transação ativa para efeitos de contabilização, e não afeta o servidor e sua performance.
  • Suportado apenas pelo InterBase 7.x, 2007, 2009, XE
  • Assim como na API do Firebird API incrementa o contador Next transaction, porque para ler os dados das tabelas TMP$ é necessário ser executado dentro de uma transação.
  • Tempo de acesso é um pouco maior do que usando a Services API (< 0.5 seconds).
Se você escolher um método de coleta de estatísticas que é incompatível com seu servidor nada será escrito no log de transações do Monitor. Verifique a aba Error Log no Configuration Assistant para ver os erros que podem acontecer durante o monitoramento das bases de dados.
Check Interval (intervalo de verificação). Determina qual a frequência que o Monitor buscará as informações do estado das transações da base de dados. 1 minuto é o intervalo mínimo. Você pode definir em 1, 3, 5, 10, 20, 30 minutos, ou até intervalos de 1 hora, mas o intervalo que oferece dados mais informativos é 1 ou 3 minutos.
Usando o intervalo de 1 minuto, o Monitor verificará os estados das transações da base de dados 1440 vezes a cada 24 horas. O tamanho do arquivo de log será de aproximadamente 150 Kilobytes.
Start time e End Time (Tempo de Inicio e Tempo de Fim). Se não for definido o Monitor buscará as estatísticas do banco especificado o tempo todo que estiver rodando. Se o tempo limite for definido o Monitor buscará as informações apenas dentro deste período especificado.
User name e Password (Nome do usuário e Senha). Definem o nome de usuário e senha da conta que será usada para monitoramento do estado das transações da base de dados. Você pode usar a conta SYSDBA ou qualquer outra conta que quiser. Se for usar uma conta diferente de SYSDBA, para usar os métodos da Services API ou Firebird API não é necessário conceder nenhum tipo de privilégio adicional a esta conta. Você pode criar um usuário como 'TM', e o Monitor funcionará com sucesso.
Para o método que usa Temporary System Tables (IB 7.x, 2007, 2009, XE) a conta de login precisará ter acesso de leitura as tabelas $TRANSACTIONS e TMP$DATABASES. Se você usa Embedded User Authentification (autenticação embutida de usuário) nas bases de dados do InterBase 7.x, 2007, 2009, XE, você precisará criar uma conta e conceder os privilégios de acesso para aquela base de dados explicitamente.

Botão Test Server Connection (Testar Conexão com Servidor).


Permite que verifique qual o melhor método e monitoramento de transação para um servidor em particular. Você pode também usar este botão para verificar qual método funciona com um servidor em particular.

Visualizer (Visualizador)

O Visualizer mostra as informações coletadas pelo Monitor. O diretório base para os arquivos .tmd é obtido pelas definições do Configuration Assistant.


No lado esquerdo você verá uma lista dos arquivos de estatísticas. Por padrão o Viewer busca na pasta de Log que está localizada no diretório base de instalação. Você pode mudar esta pasta usando o Configuration Assistant, ou abrir a pasta desejada pelo menu.
Clique no arquivo de estatística e ele será desenhado imediatamente no gráfico. Você pode selecionar múltiplos arquivos de estatísticas ao mesmo tempo pressionando os botões CTRL ou SHIFT e clicando nos arquivos:



No canto inferior esquerdo você pode ativar/desativar as diferentes linhas no gráfico (Next, Oldest…). Por exemplo, se você quer ver a dinâmica da transação, ative “Next dynamic” - então será exibido quantas novas transações foram iniciadas entre as leituras do banco de dados pelo IBTM:



No lado direito, esquerdo, superior e inferior do gráfico existem linhas especiais que vc pode arrastar (usando o mouse) para verificar quando um evento ocorreu e qual o valor que ele possui. Olhe na linha vertical azul no meio do gráfico e na linha horizontal marrom, quando você move estas linhas, os labels respectívos são modificados, as linhas verticais permitem que vc aponte em um momento específico e as linhas horizontais que aponte para um número de transação em particular:



Você pode também aumentar ou diminuir o zoom na escala horizontal, vertical ou nas duas ao mesmo tempo. Para voltar ao estado original pressione o botão Reset Zoom (ou faça zoom no sentido oposto usando o mouse).



Importante! Se as estatísticas coletadas pelo IBTM usou os métodos de acesso do Firebird ou InterBase 7.x, você poderá visualizar a quantidade real de transações ativas.

Este gráfico mostra que em 10 de novembro de 2005 existiam entre 65 e 105 transações ativas, abertas pelas aplicações. E pode-se ver que durante a hora do almoço (das 13:00 às 14:00) ainda existiam por volta de 80 transações ativas. Isto quer dizer que:
  • Os usuários não fecham as aplicações quando vão almoçar
  • As aplicações possuem transações abertas e ativas
Usando estas informações você pode tomar decisões sobre o que pode estar errado na forma que as aplicações trabalham. Isto irá depender de quantas transações são diretamente gerenciadas pelas aplicações.

Graph view types (Tipos de Visualização do Gráfico)

Existem três botões que mudam a forma de visualização do gráfico:
Relative (oldest). Calculado subtraindo o valor da Oldest transaction ou da Oldest Snapshot (aquela que for menor) da Next e Oldest Active transactions. Permite que você visualize o intervalo das transações semi-ativas olhando na legenda no lado esquerdo do gráfico. Aqui está um exemplo de gráfico anterior com o botão “Relative” ligado:



AutoMin. Por padrão quando você abre o qualquer arquivo de estatísticas do IBTM, o menor valor de transação é automaticamente tratado como "0". Normalmente será o Oldest (interesting) transaction ou o Oldest Snapshot.



Abs. Possibilita que você veja o fluxo do número da transação e a diferença para números grandes de transações. Na imagem anterior o menor número de transação era por volta de 7 milhões, dificultando o entendimento de qual é a diferença, por exemplo, entre a Oldest e a Next transactions. Aqui podemos ver isso, para estas estatísticas, a diferença não é maior do que 18000 transações.




Suporte Técnico

Se você quiser explicações aprofundadas sobre o comportamento das transações para o seu banco de dados, seria interessante contratar nosso suporte técnico. Por favor, leia mais sobre nossos servicos aqui.
Fique a vontade para nos contactar sobre quaisquer questões pelo e-mail support@ib-aid.com.

No comments:

Post a Comment