ServerConf Configurações

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.