ServerConf Configurações
Índice
Conceito
As Configurações do ServerConf reúnem os parâmetros utilizados pelo próprio servidor de aplicação. Valem para o servidor inteiro e para todas as bases de dados atendidas por ele.
O que é
É o formulário Configurações do Servidor, aberto pela opção Configurações do menu lateral do ServerConf, com os grupos Serviço e Subprocessos. Após alteradas as informações, é necessário confirmar pelo botão Salvar.
Subprocesso é uma cópia do servidor de aplicação em execução separada, que roda um trabalho isolado do serviço principal. Uma falha grave no subprocesso encerra somente ele e o que estava rodando nele, e o serviço continua no ar.
Para que serve
Serve para ajustar o serviço ao tamanho do servidor e à quantidade de clientes atendidos: as conexões com o banco de dados do ServerConf, o registro de requisições lentas, o tempo de sessão do ServerConf, quantos processos rodam ao mesmo tempo, quantos subprocessos executam os agendamentos e geram os relatórios e de quanto em quanto tempo esses subprocessos são renovados.
Quais os benefícios e/ou ganhos de uso
- Protege o servidor e o banco de dados contra sobrecarga, limitando os processos que rodam ao mesmo tempo.
- Divide as vagas de forma justa entre as bases de dados: a base com muitos processos na fila não passa na frente da que solicitou um.
- Isola agendamentos e relatórios do serviço principal, que segue atendendo as requisições.
- Renova os subprocessos de tempos em tempos, devolvendo a memória acumulada no uso.
- Registra as requisições lentas com o detalhe do tempo gasto, o que facilita localizar a causa de uma lentidão.
- Encerra a sessão do ServerConf esquecida aberta.
Quando as alterações passam a valer
O limite de requisição lenta e o tempo sem uso da sessão do ServerConf passam a valer ao salvar. Os demais parâmetros passam a valer somente após reiniciar o serviço do servidor de aplicação.
Campo vazio utiliza o valor padrão, exibido em cinza dentro do próprio campo.
Processos em subprocesso
Os procedimentos executados como processo em subprocesso, como a geração do Json dos cadastros na atualização, a emissão de documentos em lote e a recontabilização, respeitam o limite do campo Processos rodando ao mesmo tempo.
- Com o limite atingido, o processo seguinte aguarda na fila e é iniciado assim que outro termina.
- Enquanto aguarda, o processo é exibido em andamento com 0%, e o log dele informa que está aguardando vaga.
- A próxima vaga vai para a base de dados com menos processos rodando; entre bases empatadas, para o processo que aguarda há mais tempo.
- O processo cancelado enquanto aguarda sai da fila sem ser executado.
- O log do servidor registra um alerta quando a fila começa e outro quando ela esvazia, com a maior espera.
- O card Subprocessos do Dashboard exibe os processos rodando, o limite, a fila e a maior espera.
Subprocessos de agendamentos e de relatórios
Os agendamentos e os relatórios têm subprocessos próprios, que atendem todas as bases de dados. Cada subprocesso atende vários trabalhos ao mesmo tempo, e cada execução de agendamento e cada relatório é enviado ao menos ocupado.
- Ao atingir o tempo de Trocar cada subprocesso de agendamentos e relatórios após, ou ao ultrapassar 300 MB 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 subprocesso que para de responder é encerrado, e outro é iniciado no lugar.
- Sem subprocesso de relatórios disponível em até 30 segundos, ou com mais de 30 minutos de geração, o relatório retorna com erro para quem o solicitou.
Exemplos
- Servidor com muitos clientes atualizando ao mesmo tempo: o banco de dados chega ao limite de conexões ou o processador fica no máximo. Reduzir Processos rodando ao mesmo tempo faz os processos excedentes aguardarem na fila, e o servidor continua atendendo os usuários.
- Clientes relatando lentidão: informar 5 em Registrar requisição lenta acima de e consultar a tela Logs após algumas horas de uso, para ver quais requisições ultrapassam esse tempo e onde o tempo foi gasto.
- Muitos agendamentos pesados no mesmo horário: aumentar Execução dos agendamentos para 2 ou 3 distribui as execuções entre mais subprocessos.
- Relatórios grandes gerados ao mesmo tempo por vários usuários: aumentar Geração dos relatórios divide a geração entre mais subprocessos.
- Servidor de desenvolvimento: informar 0 em Execução dos agendamentos e em Geração dos relatórios faz tudo rodar no próprio serviço, acompanhado pelo depurador.
Cadastro
Serviço
| Campo | Finalidade |
|---|---|
| Pool de Conexões (ServerConf) | Número de conexões que são mantidas no pool de conexões para a base de dados do ServerConf. Com todas em uso, a requisição é atendida por uma conexão avulsa, aberta e fechada somente para ela, e o log registra um aviso para aumentar este valor. Com o valor zero, utiliza 20 conexões. |
| Minutos Permanência Pool (ServerConf) | Tempo em minutos que a conexão permanece disponível no pool de conexões do ServerConf após a última requisição. Vazio ou zero encerra a conexão parada na verificação seguinte do pool. |
| Registrar requisição lenta acima de (segundos, 0 desliga) | Tempo, em segundos, a partir do qual a requisição é registrada no log como requisição lenta (REQUISICAO_LENTA). O registro 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 tempo lendo e empacotando as linhas devolvidas e o usuário. Quando alguma consulta ultrapassa 200 milissegundos, o registro informa também a consulta mais lenta e o tempo dela. Com o valor zero ou vazio, o registro fica desligado. |
| Encerrar sessão do ServerConf sem uso após (minutos, 0 desliga) | Tempo, em minutos, sem uso do ServerConf após o qual a sessão é encerrada e o login é solicitado novamente. Contam como uso o teclado, o mouse e o toque em qualquer aba da sessão, além das operações em andamento. Um minuto antes do encerramento, é exibida a caixa Sessão prestes a expirar, com a contagem regressiva e o botão Continuar conectado. Vazio utiliza 15 minutos, e o valor 0 desliga o encerramento por falta de uso. |
Subprocessos
| Campo | Finalidade |
|---|---|
| Processos rodando ao mesmo tempo (os demais aguardam) | Quantidade de processos em subprocesso rodando ao mesmo tempo no servidor; os seguintes aguardam na fila e são iniciados conforme os outros terminam. Vazio utiliza o dobro da quantidade de processadores do servidor. |
| Execução dos agendamentos (0 roda no próprio serviço) | Quantidade de subprocessos que executam os agendamentos das bases de dados marcadas com Agendamento. A quantidade não ultrapassa o número de bases de dados com agendamento. Vazio utiliza 1 subprocesso, e o valor 0 executa os agendamentos no próprio serviço. |
| Geração dos relatórios (0 gera no próprio serviço) | Quantidade de subprocessos que geram os relatórios solicitados pelos usuários: PDF, planilha, relatório preparado para o PHERP desktop, Prever dos botões de relatório e anexo dos relatórios enviados por e-mail. Vazio utiliza 1 subprocesso, e o valor 0 gera os relatórios no próprio serviço. |
| Trocar cada subprocesso de agendamentos e relatórios após (horas) | Tempo de vida, em horas, de cada subprocesso de execução dos agendamentos e de geração dos relatórios. Vazio ou zero utiliza 12 horas. |
| Geração de Json na atualização | Quantidade de subprocessos que geram o Json dos cadastros na atualização do banco de dados e na geração completa do Json dos cadastros. Os cadastros são divididos em lotes, um por subprocesso, acompanhados na tela Processos como Json Cadastros - Lote seguido do número. Os lotes entram no limite de Processos rodando ao mesmo tempo. A quantidade fica limitada ao número de processadores do servidor. Vazio utiliza 2 subprocessos. |
Conclusão
As Configurações do ServerConf ajustam o servidor de aplicação ao servidor onde ele roda. Os valores padrão atendem a maioria dos cenários; os ajustes entram quando cresce o número de clientes, de agendamentos ou de relatórios, ou quando é preciso investigar uma lentidão. Exceto o limite de requisição lenta e o tempo sem uso da sessão, as alterações valem após reiniciar o serviço.