<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://wiki.phsys.com.br/index.php?action=history&amp;feed=atom&amp;title=Dashboard_ServerConf</id>
	<title>Dashboard ServerConf - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.phsys.com.br/index.php?action=history&amp;feed=atom&amp;title=Dashboard_ServerConf"/>
	<link rel="alternate" type="text/html" href="http://wiki.phsys.com.br/index.php?title=Dashboard_ServerConf&amp;action=history"/>
	<updated>2026-10-26T10:25:05Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.31.10</generator>
	<entry>
		<id>http://wiki.phsys.com.br/index.php?title=Dashboard_ServerConf&amp;diff=7340&amp;oldid=prev</id>
		<title>Admin: Criou página com &#039;===&#039;&#039;&#039;Conceito&#039;&#039;&#039;=== O monitoramento da saúde de um servidor de aplicação consiste em acompanhar como o serviço utiliza os recursos do servidor, como memória, threads, co...&#039;</title>
		<link rel="alternate" type="text/html" href="http://wiki.phsys.com.br/index.php?title=Dashboard_ServerConf&amp;diff=7340&amp;oldid=prev"/>
		<updated>2026-10-01T11:42:37Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;===&amp;#039;&amp;#039;&amp;#039;Conceito&amp;#039;&amp;#039;&amp;#039;=== O monitoramento da saúde de um servidor de aplicação consiste em acompanhar como o serviço utiliza os recursos do servidor, como memória, threads, co...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===&amp;#039;&amp;#039;&amp;#039;Conceito&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
O monitoramento da saúde de um servidor de aplicação consiste em acompanhar como o serviço utiliza os recursos do servidor, como memória, threads, conexões com o banco de dados, subprocessos e caches, e quais eventos relevantes foram registrados durante o seu funcionamento. Com essas informações, é possível identificar a causa de lentidões, antecipar situações que afetariam os usuários e ajustar as configurações com base no uso real do sistema.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;O que é&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
O Dashboard é a tela inicial do PHServerConf, exibida logo após o login e disponível no menu lateral. Identificado pelo título &amp;lt;b&amp;gt;Saúde do servidor&amp;lt;/b&amp;gt;, ele reúne em uma única página o estado do processo do serviço do servidor de aplicação no momento da consulta, nos blocos &amp;lt;b&amp;gt;Processo&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Conexões dos pools&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Subprocessos&amp;lt;/b&amp;gt; e &amp;lt;b&amp;gt;Caches agora&amp;lt;/b&amp;gt;, e o histórico dos eventos registrados nos logs nos últimos 8 dias, no bloco &amp;lt;b&amp;gt;Eventos&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Para que serve&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
O Dashboard serve para:&lt;br /&gt;
*acompanhar o uso de memória, threads e conexões do servidor de aplicação;&lt;br /&gt;
*verificar se o pool de conexões de cada base de dados atende a demanda;&lt;br /&gt;
*acompanhar os subprocessos, as execuções de agendamentos e os relatórios em geração;&lt;br /&gt;
*avaliar o aproveitamento dos caches e limpá-los quando necessário;&lt;br /&gt;
*identificar requisições lentas, transações abertas, consultas não liberadas e erros, com os horários e as bases de dados em que ocorrem.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Quais os benefícios e/ou ganhos de uso&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Diagnóstico rápido:&amp;#039;&amp;#039;&amp;#039; As principais informações de saúde do servidor ficam reunidas em uma tela acessada pelo navegador, sem a necessidade de acesso ao servidor.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Prevenção:&amp;#039;&amp;#039;&amp;#039; Pool cheio, transações abertas, subprocessos sem sinal e taxa de acerto baixa nos caches ficam em destaque, permitindo agir antes que os usuários sejam afetados.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Configuração baseada no uso real:&amp;#039;&amp;#039;&amp;#039; O pico de conexões, as conexões fora do pool e a ocupação dos subprocessos orientam o ajuste do pool de conexões, da permanência e da quantidade de subprocessos.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Análise de lentidão:&amp;#039;&amp;#039;&amp;#039; Os eventos de requisição lenta informam o procedimento, os dados tratados, o tempo gasto no banco de dados e a quantidade de consultas, o que direciona a investigação.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Apoio ao suporte:&amp;#039;&amp;#039;&amp;#039; As informações podem ser consultadas durante o atendimento, cada uma com o horário da leitura.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Funcionamento&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
Os blocos &amp;lt;b&amp;gt;Processo&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Conexões dos pools&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Subprocessos&amp;lt;/b&amp;gt; e &amp;lt;b&amp;gt;Caches agora&amp;lt;/b&amp;gt; apresentam o estado do processo do serviço que atendeu a página no momento da leitura. Cada bloco informa o horário da leitura e possui o botão &amp;lt;b&amp;gt;Atualizar&amp;lt;/b&amp;gt;, que faz uma nova leitura. Os indicadores do bloco &amp;lt;b&amp;gt;Processo&amp;lt;/b&amp;gt; são lidos junto com o bloco &amp;lt;b&amp;gt;Caches agora&amp;lt;/b&amp;gt; e atualizados pelo botão &amp;lt;b&amp;gt;Atualizar&amp;lt;/b&amp;gt; dele, e a composição da memória privada e a lista de threads possuem botões &amp;lt;b&amp;gt;Atualizar&amp;lt;/b&amp;gt; próprios.&lt;br /&gt;
&lt;br /&gt;
O bloco &amp;lt;b&amp;gt;Eventos&amp;lt;/b&amp;gt; é montado na abertura da página com os eventos dos últimos 8 dias, incluindo o dia atual, e é atualizado ao recarregar a página. O topo da tela informa a janela de dias e o momento em que essas informações foram geradas.&lt;br /&gt;
&lt;br /&gt;
Quando mais de um servidor de aplicação utiliza a mesma base de dados do PHServerConf, os blocos de estado apresentam o processo do servidor que atendeu a página, e os eventos reúnem os logs gravados por todos os processos, incluindo os subprocessos.&lt;br /&gt;
&lt;br /&gt;
As listas mais longas iniciam recolhidas, com um resumo ao lado do título, e são abertas pela seta ou por um clique no título. Nas listas de threads e de subprocessos, os itens semelhantes são agrupados em uma única linha, com a quantidade e os totais, que também pode ser expandida. As listas com mais de 10 linhas são paginadas, com os botões &amp;lt;b&amp;gt;Anterior&amp;lt;/b&amp;gt; e &amp;lt;b&amp;gt;Próxima&amp;lt;/b&amp;gt;, e a página exibida é mantida ao atualizar.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Exemplos&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Pool de conexões insuficiente:&amp;#039;&amp;#039;&amp;#039; Uma base de dados aparece no início da lista de conexões com a barra de uso em destaque, indicando pool cheio, conexões avulsas, valores em &amp;#039;&amp;#039;&amp;#039;Fora do pool&amp;#039;&amp;#039;&amp;#039; a cada varredura e o &amp;#039;&amp;#039;&amp;#039;Pico&amp;#039;&amp;#039;&amp;#039; acima do limite. O campo &amp;#039;&amp;#039;&amp;#039;Pool de Conexões&amp;#039;&amp;#039;&amp;#039; do cadastro da base de dados está abaixo da demanda, e o valor do pico indica o tamanho que atenderia o momento de maior uso. A alteração no cadastro da base de dados vale após reiniciar o serviço.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Rotina lenta:&amp;#039;&amp;#039;&amp;#039; Eventos REQUISICAO_LENTA com a mesma origem se repetem ao longo do dia, informando que a requisição levou vários segundos, a maior parte no banco de dados, em mais de mil consultas. O tempo está no volume de consultas realizadas para cada registro processado. Quando poucas consultas concentram o tempo, a mensagem informa a consulta mais lenta, que é o ponto de partida para a análise de índices.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Transação aberta:&amp;#039;&amp;#039;&amp;#039; A coluna &amp;#039;&amp;#039;&amp;#039;Transação aberta&amp;#039;&amp;#039;&amp;#039; de uma base de dados apresenta valor acima de zero: um procedimento terminou sem confirmar ou cancelar a transação, e o pool a cancelou. Os eventos TRANSACAO_ABERTA, nos &amp;#039;&amp;#039;&amp;#039;Últimos eventos&amp;#039;&amp;#039;&amp;#039; e na tela &amp;lt;b&amp;gt;Logs&amp;lt;/b&amp;gt;, informam o procedimento de origem.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Crescimento de memória:&amp;#039;&amp;#039;&amp;#039; A memória do processo aumenta ao longo do dia. Na composição da memória privada, o crescimento em &amp;#039;&amp;#039;&amp;#039;Heaps do Windows&amp;#039;&amp;#039;&amp;#039; corresponde à memória das bibliotecas nativas, como o cliente do banco de dados, liberada conforme as conexões do pool são renovadas. O crescimento nas partes do gerenciador corresponde a objetos do próprio servidor, e o bloco &amp;lt;b&amp;gt;Caches agora&amp;lt;/b&amp;gt; e a lista &amp;#039;&amp;#039;&amp;#039;Datasets ativos nas conexões&amp;#039;&amp;#039;&amp;#039; mostram onde eles estão.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Eventos fora do horário de trabalho:&amp;#039;&amp;#039;&amp;#039; O mapa de ocorrências por hora concentra eventos durante a madrugada. Eles vêm de rotinas automáticas, como os agendamentos, e a coluna &amp;#039;&amp;#039;&amp;#039;Origem&amp;#039;&amp;#039;&amp;#039; dos últimos eventos informa o procedimento que os gerou.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Base de dados restaurada ou alterada diretamente no banco:&amp;#039;&amp;#039;&amp;#039; Após restaurar uma cópia da base de dados ou alterar diretamente no banco as definições dos cadastros, o botão &amp;lt;b&amp;gt;Limpar base&amp;lt;/b&amp;gt;, com a base selecionada no bloco &amp;lt;b&amp;gt;Caches agora&amp;lt;/b&amp;gt;, descarta os itens dessa base, que são reconstruídos no próximo uso.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Blocos e indicadores&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
&lt;br /&gt;
====&amp;#039;&amp;#039;&amp;#039;Processo&amp;#039;&amp;#039;&amp;#039;====&lt;br /&gt;
Informações do processo do serviço que atendeu a página:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Memória do processo:&amp;#039;&amp;#039;&amp;#039; Memória privada em uso pelo processo, a mesma informação da coluna Memória do Gerenciador de Tarefas do Windows, com a memória residente e a comprometida na nota.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Alocado pela aplicação:&amp;#039;&amp;#039;&amp;#039; Parte da memória ocupada pelos objetos do sistema, incluindo os caches, com o total reservado pelo gerenciador de memória para alocação.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Threads:&amp;#039;&amp;#039;&amp;#039; Quantidade de threads do processo e de handles abertos.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;No ar desde:&amp;#039;&amp;#039;&amp;#039; Momento em que o serviço foi iniciado e há quanto tempo está em execução.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Composição da memória privada:&amp;#039;&amp;#039;&amp;#039; Barra que divide a memória privada em partes, com o total ao lado do título. A tabela, recolhida por padrão, apresenta o tamanho em MB, o percentual sobre a memória privada e a descrição de cada parte. Quando a soma das partes difere do total em meio megabyte ou mais, uma nota de conferência abaixo da tabela apresenta as medições utilizadas na conta.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parte&lt;br /&gt;
!O que é&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Gerenciador: em uso nos pools&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Objetos e textos em uso pelo servidor, de até 256 KB cada, incluindo os caches.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Gerenciador: livre nos pools&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Memória reservada pelo gerenciador de memória e ainda sem objetos, decorrente da fragmentação.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Gerenciador: blocos grandes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Alocações acima de 256 KB, como datasets, JSON e buffers.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Heaps do Windows&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Memória das bibliotecas nativas, como o cliente do banco de dados, o OpenSSL e o driver ODBC.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Pilhas das threads&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Parte comprometida das pilhas das threads do processo.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Dados do executável&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Variáveis globais e tabelas do programa.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Não classificado&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Memória privada fora das demais partes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Threads:&amp;#039;&amp;#039;&amp;#039; Lista, recolhida por padrão, das threads do processo, com a quantidade por origem ao lado do título. Os botões de origem filtram a lista e informam a quantidade de threads de cada origem.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Nome:&amp;#039;&amp;#039;&amp;#039; Nome atribuído à thread pelo servidor de aplicação; as threads sem nome são identificadas como sem nome.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Origem:&amp;#039;&amp;#039;&amp;#039; Local em que a thread foi iniciada: &amp;#039;&amp;#039;&amp;#039;Servidor&amp;#039;&amp;#039;&amp;#039;, o executável do servidor de aplicação; &amp;#039;&amp;#039;&amp;#039;Driver do banco&amp;#039;&amp;#039;&amp;#039;, as bibliotecas cliente dos bancos de dados; &amp;#039;&amp;#039;&amp;#039;Sistema&amp;#039;&amp;#039;&amp;#039;, as bibliotecas do Windows; &amp;#039;&amp;#039;&amp;#039;Biblioteca&amp;#039;&amp;#039;&amp;#039;, as demais bibliotecas; ou &amp;#039;&amp;#039;&amp;#039;Desconhecida&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Módulo:&amp;#039;&amp;#039;&amp;#039; Arquivo em que a thread foi iniciada. Nas threads sem nome, inclui a posição da função inicial, que identifica a mesma thread em leituras diferentes.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CPU:&amp;#039;&amp;#039;&amp;#039; Tempo de CPU consumido pela thread.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Criada:&amp;#039;&amp;#039;&amp;#039; Há quanto tempo a thread foi criada.&lt;br /&gt;
&lt;br /&gt;
Threads com a mesma origem e o mesmo nome, variando apenas a numeração ou a palavra após os dois-pontos, como o nome da base de dados, são agrupadas em uma linha com a quantidade, a CPU somada, a maior CPU e a idade da mais antiga.&lt;br /&gt;
&lt;br /&gt;
====&amp;#039;&amp;#039;&amp;#039;Conexões dos pools&amp;#039;&amp;#039;&amp;#039;====&lt;br /&gt;
Conexões com o banco de dados mantidas pelo processo do serviço para cada base de dados, no pool das bases de dados do ERP e no pool da base de dados do PHServerConf, identificado como ServerConf. Quando o pool está cheio, a requisição é atendida por uma conexão avulsa, aberta e fechada somente para ela; em grande volume, isso torna as requisições mais lentas e pode esgotar as portas do servidor.&lt;br /&gt;
&lt;br /&gt;
A varredura do pool ocorre a cada 5 minutos e fecha as conexões paradas além do tempo de permanência. Cada conexão é utilizada por até 60 minutos: ao completar esse tempo, ela é fechada quando devolvida ao pool ou, se estiver parada, na varredura, e outra é aberta quando necessário. O cabeçalho do bloco informa o horário da leitura, o horário da última varredura e o total de conexões em uso, e as bases de dados com alerta (pool cheio, conexão avulsa, conexões fora do pool ou transação aberta) aparecem no início da lista.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Base:&amp;#039;&amp;#039;&amp;#039; Nome da base de dados, com o tempo de permanência das conexões paradas no pool.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Uso do pool:&amp;#039;&amp;#039;&amp;#039; Barra com as conexões em uso, as abertas paradas e as vagas até o limite, em destaque quando o pool está cheio. A base de dados com o campo &amp;#039;&amp;#039;&amp;#039;Pool de Conexões&amp;#039;&amp;#039;&amp;#039; zerado é identificada como sem pool.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Em uso / abertas / limite:&amp;#039;&amp;#039;&amp;#039; Conexões em uso, conexões abertas e o limite do pool, definido no campo &amp;#039;&amp;#039;&amp;#039;Pool de Conexões&amp;#039;&amp;#039;&amp;#039; do cadastro da base de dados, contando as que estão sendo abertas. As conexões avulsas existentes no momento aparecem abaixo dos números.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Pico:&amp;#039;&amp;#039;&amp;#039; Maior quantidade de conexões usadas ao mesmo tempo desde o início do serviço, somando as do pool e as avulsas, com o horário em que ocorreu. Fica em destaque quando ultrapassa o limite; nesse caso, o valor indica o tamanho de pool que atenderia aquele momento sem conexões avulsas.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Fora do pool:&amp;#039;&amp;#039;&amp;#039; Conexões avulsas criadas por falta de vaga no pool desde a última varredura, em destaque quando há alguma, e o total desde o início do serviço.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Transação aberta:&amp;#039;&amp;#039;&amp;#039; Quantidade de conexões da base de dados devolvidas com transação aberta nas últimas 24 horas, em todos os processos, incluindo os subprocessos. O pool cancela a transação, e o procedimento responsável fica registrado no log com o tipo TRANSACAO_ABERTA.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Datasets ativos nas conexões:&amp;#039;&amp;#039;&amp;#039; Lista, recolhida por padrão, dos datasets existentes nas conexões do processo, com a quantidade de datasets, de conexões e a memória estimada ao lado do título. São apresentados os 40 maiores em memória, e os demais são somados em uma linha ao final.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Base · conexão:&amp;#039;&amp;#039;&amp;#039; Base de dados e conexão a que o dataset está ligado.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;SQL ou tabela:&amp;#039;&amp;#039;&amp;#039; Comando SQL ou tabela do dataset.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Estado:&amp;#039;&amp;#039;&amp;#039; Aberto ou fechado.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Linhas:&amp;#039;&amp;#039;&amp;#039; Quantidade de linhas carregadas.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;B/linha:&amp;#039;&amp;#039;&amp;#039; Tamanho médio de cada linha, em bytes.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;≈ MB:&amp;#039;&amp;#039;&amp;#039; Memória aproximada ocupada pelo dataset.&lt;br /&gt;
&lt;br /&gt;
====&amp;#039;&amp;#039;&amp;#039;Subprocessos&amp;#039;&amp;#039;&amp;#039;====&lt;br /&gt;
Processos que o serviço mantém separados do processo principal e que atendem todas as bases de dados: os processos executados em subprocesso, os subprocessos de execução dos agendamentos e os subprocessos de geração dos relatórios. A memória dos subprocessos é apresentada neste bloco, separada da memória do bloco &amp;lt;b&amp;gt;Processo&amp;lt;/b&amp;gt;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;No ar:&amp;#039;&amp;#039;&amp;#039; Quantidade de subprocessos em execução.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Memória somada:&amp;#039;&amp;#039;&amp;#039; Memória de todos os subprocessos, a mesma informação do Gerenciador de Tarefas do Windows, com a memória comprometida na nota.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CPU somada:&amp;#039;&amp;#039;&amp;#039; Tempo de CPU consumido pelos subprocessos desde que cada um foi iniciado.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Execuções agora:&amp;#039;&amp;#039;&amp;#039; Execuções de agendamentos em andamento, com a quantidade de subprocessos de execução no ar e a quantidade configurada.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Relatórios agora:&amp;#039;&amp;#039;&amp;#039; Relatórios em geração, com a quantidade de subprocessos de relatórios no ar e a quantidade configurada.&lt;br /&gt;
&lt;br /&gt;
A lista dos subprocessos apresenta:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Tipo:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Processo&amp;#039;&amp;#039;&amp;#039;, para os processos executados em subprocesso, como os lotes de geração de Json e a manutenção do banco de dados; &amp;#039;&amp;#039;&amp;#039;Agendamento&amp;#039;&amp;#039;&amp;#039;, para os subprocessos de execução dos agendamentos; ou &amp;#039;&amp;#039;&amp;#039;Relatório&amp;#039;&amp;#039;&amp;#039;, para os subprocessos de geração dos relatórios. Os subprocessos de agendamento e de relatório são agrupados por tipo, com a memória somada e a maior entre eles.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;O que roda:&amp;#039;&amp;#039;&amp;#039; O que o subprocesso está executando.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;PID:&amp;#039;&amp;#039;&amp;#039; Identificador do processo no Windows.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;No ar há:&amp;#039;&amp;#039;&amp;#039; Tempo desde que o subprocesso foi iniciado.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Memória:&amp;#039;&amp;#039;&amp;#039; Memória do subprocesso, a mesma informação exibida no Gerenciador de Tarefas do Windows.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;CPU:&amp;#039;&amp;#039;&amp;#039; Tempo de CPU consumido pelo subprocesso.&lt;br /&gt;
&lt;br /&gt;
As listas &amp;#039;&amp;#039;&amp;#039;Subprocessos de execução dos agendamentos&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;Subprocessos de geração dos relatórios&amp;#039;&amp;#039;&amp;#039;, recolhidas por padrão, apresentam um resumo ao lado do título e as colunas:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Subprocesso:&amp;#039;&amp;#039;&amp;#039; Número e PID do subprocesso.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Situação:&amp;#039;&amp;#039;&amp;#039; Subindo, no ar sem trabalhos, rodando, com a quantidade de trabalhos, ou saindo, com o motivo da saída.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Execuções&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;Relatórios:&amp;#039;&amp;#039;&amp;#039; Quantidade de execuções de agendamentos ou de relatórios em andamento no subprocesso.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Último sinal:&amp;#039;&amp;#039;&amp;#039; Há quanto tempo o subprocesso enviou o último sinal ao serviço, em destaque após 90 segundos. O subprocesso envia um sinal a cada 30 segundos; sem sinal por 3 minutos, o serviço o encerra e inicia outro.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Troca:&amp;#039;&amp;#039;&amp;#039; Quando o subprocesso será trocado pelo tempo de vida definido nas &amp;lt;b&amp;gt;Configurações&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Quando a quantidade de subprocessos de um conjunto é 0 nas &amp;lt;b&amp;gt;Configurações&amp;lt;/b&amp;gt;, a lista informa que o trabalho é executado no próprio serviço.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Execuções em andamento:&amp;#039;&amp;#039;&amp;#039; Lista, recolhida por padrão, com a base de dados, o agendamento, o subprocesso que o executa e há quanto tempo. A execução que ultrapassa o tempo esperado para o seu tipo fica em destaque e continua em execução.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Relatórios em andamento:&amp;#039;&amp;#039;&amp;#039; Lista, recolhida por padrão, com a base de dados, o usuário, o pedido (PDF, planilha, relatório para o desktop, Prever do botão ou anexo do e-mail), o subprocesso que o gera e há quanto tempo.&lt;br /&gt;
&lt;br /&gt;
Cada execução e cada relatório são enviados ao subprocesso menos ocupado do seu conjunto. Na troca, por tempo de vida ou por uso de memória, outro subprocesso é iniciado no lugar; quando ele fica pronto, o subprocesso trocado deixa de receber trabalhos e é encerrado quando os que estão em andamento terminam. O relatório que ultrapassa 30 minutos retorna com erro para quem o solicitou, e o subprocesso dele é trocado.&lt;br /&gt;
&lt;br /&gt;
====&amp;#039;&amp;#039;&amp;#039;Caches agora&amp;#039;&amp;#039;&amp;#039;====&lt;br /&gt;
Estado dos caches em memória do processo no momento da consulta. Os caches guardam definições utilizadas pelo sistema, como o Json e a estrutura dos cadastros, as telas da web e os arquivos de relatório, e são preenchidos no primeiro uso pelo PHERP. Faltas que só aumentam indicam invalidação em excesso, e a base de dados que atinge o teto perde itens por falta de espaço, e não por validade.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Itens em memória:&amp;#039;&amp;#039;&amp;#039; Quantidade de itens guardados nos caches, com o número de caches e de bases de dados.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Texto de origem:&amp;#039;&amp;#039;&amp;#039; Tamanho do conteúdo (JSON) que gerou os itens em memória.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Taxa de acerto:&amp;#039;&amp;#039;&amp;#039; Percentual das buscas atendidas pelo cache desde o início do serviço, em destaque abaixo de 90%.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Aguardando liberação:&amp;#039;&amp;#039;&amp;#039; Itens com descarte adiado, liberados em até 120 segundos.&lt;br /&gt;
&lt;br /&gt;
O seletor de base filtra os indicadores e a lista. O botão &amp;lt;b&amp;gt;Limpar base&amp;lt;/b&amp;gt;, habilitado com uma base de dados selecionada, limpa os caches dessa base, e o botão &amp;lt;b&amp;gt;Limpar tudo&amp;lt;/b&amp;gt; limpa os caches de todas as bases. As duas ações pedem confirmação, e os itens são reconstruídos no próximo uso.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Caches por base:&amp;#039;&amp;#039;&amp;#039; Lista, recolhida por padrão, com uma linha por cache e base de dados:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Cache:&amp;#039;&amp;#039;&amp;#039; Nome do cache.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Base:&amp;#039;&amp;#039;&amp;#039; Base de dados.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Itens:&amp;#039;&amp;#039;&amp;#039; Quantidade de itens em memória.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Teto:&amp;#039;&amp;#039;&amp;#039; Quantidade máxima de itens por base de dados, quando definida.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Origem:&amp;#039;&amp;#039;&amp;#039; Tamanho do texto de origem dos itens.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Acertos&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;Faltas:&amp;#039;&amp;#039;&amp;#039; Buscas atendidas pelo cache e buscas que precisaram montar o item.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Taxa:&amp;#039;&amp;#039;&amp;#039; Percentual de acerto, em destaque abaixo de 90%.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Expirados:&amp;#039;&amp;#039;&amp;#039; Itens descartados ao atingir a validade.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Por teto:&amp;#039;&amp;#039;&amp;#039; Itens descartados por falta de espaço.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Adiados:&amp;#039;&amp;#039;&amp;#039; Itens aguardando liberação.&lt;br /&gt;
&lt;br /&gt;
====&amp;#039;&amp;#039;&amp;#039;Eventos&amp;#039;&amp;#039;&amp;#039;====&lt;br /&gt;
Resumo dos eventos gravados nos logs nos últimos 8 dias, incluindo o dia atual. Cada evento possui um tipo:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;GERAL:&amp;#039;&amp;#039;&amp;#039; Demais mensagens do sistema, como erros na execução de procedimentos.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;VAZAMENTO_QUERY:&amp;#039;&amp;#039;&amp;#039; Consulta criada por um procedimento e não liberada. O pool desvincula a consulta da conexão para não afetar a próxima requisição.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;TRANSACAO_ABERTA:&amp;#039;&amp;#039;&amp;#039; Conexão devolvida ao pool com transação aberta. O pool cancela a transação, e o que estava pendente é descartado.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;REQUISICAO_LENTA:&amp;#039;&amp;#039;&amp;#039; Requisição que ultrapassou o tempo definido em &amp;#039;&amp;#039;&amp;#039;Registrar requisição lenta acima de&amp;#039;&amp;#039;&amp;#039;, nas &amp;lt;b&amp;gt;Configurações&amp;lt;/b&amp;gt;. A mensagem informa o procedimento, o cadastro, a tabela e o registro tratados, quando a requisição os informa, o tempo total, o tempo gasto no banco de dados, a quantidade de consultas, o usuário e, quando alguma consulta ultrapassa 200 milissegundos, a consulta mais lenta.&lt;br /&gt;
&lt;br /&gt;
E uma severidade: INFO, ALERTA ou ERRO.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Indicadores:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Eventos&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;Transação aberta&amp;#039;&amp;#039;&amp;#039; informam a quantidade de eventos e de transações abertas nas últimas 24 horas. &amp;#039;&amp;#039;&amp;#039;Bases atingidas&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;Sessões atingidas&amp;#039;&amp;#039;&amp;#039; informam quantas bases de dados e sessões tiveram eventos de vazamento de query, transação aberta ou requisição lenta nesse período.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Ocorrências por hora do dia:&amp;#039;&amp;#039;&amp;#039; Mapa com a quantidade de eventos em cada hora do dia, somando os 8 dias, em tons que vão de menos a mais eventos; a quantidade de cada hora aparece ao posicionar o mouse. Permite separar erros de uso, no horário de trabalho, de erros de rotinas automáticas, fora dele.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Eventos por dia:&amp;#039;&amp;#039;&amp;#039; Gráfico com a quantidade de eventos de cada dia, separada em vazamento de query, transação aberta e geral, que reúne os demais tipos, inclusive as requisições lentas. O total aparece acima de cada barra.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Últimos eventos:&amp;#039;&amp;#039;&amp;#039; Os 20 eventos mais recentes, com código, data e hora, tipo, severidade, origem, base de dados e os primeiros 400 caracteres da mensagem. A mensagem completa está na tela &amp;lt;b&amp;gt;Logs&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Conclusão&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
O Dashboard reúne, em uma única tela, as informações necessárias para acompanhar a saúde do servidor de aplicação: o uso de memória e de conexões, os subprocessos, os caches e os eventos registrados nos logs. A consulta frequente, principalmente após atualizações e nos períodos de maior uso, permite identificar e tratar as situações antes que afetem os usuários, e ajustar as configurações do servidor de aplicação com base no uso real.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;Sugestão de Leitura&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
[[Servidor_de_Aplicação|Servidor de Aplicação]]&lt;br /&gt;
&lt;br /&gt;
[[Pool de Conexões|Pool de Conexões]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Assuntos Relacionados&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Processos|Execução de Processos no Servidor de Aplicação]]&lt;br /&gt;
&lt;br /&gt;
[[Agendamento_de_Processos|Agendamento de Processos]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>