Autor do artigo: isabela.carvalho.pro

(Não remova esse quadro) Descreva o passo a passo para o cliente seguindo os padrões de escrita de artigos, como: 1. Escreva em voz ativa. 2. Numere o passo a passo. 3. Atenção com imagens: utilize uma resolução apropriada ao local de inserção. 4. Escreva em tempo presente, na primeira pessoal e no imperativo (em passo a passo). Essas informações não se tonam parte do conteúdo em sua nova página, elas ficam ocultas e só aprecem para usuário logado e se o artigo/dica estiver em modo de edição!



Contexto:


A análise de ambiente é realizada quando o cliente relata problemas relacionados a desempenho (Lentidão, travamento.) e sua finalidade é determinar o que no ambiente do cliente ocasiona tal situação. É interessante antes da realização de alterações dentro do sistema a seguinte análise:

  1.  Selecione uma rotina de cada módulo utilizado pelo cliente em que possa ser testada a abertura, gravação e desempenho: (Ex: Cadastro de empresas, Cadastro de Funcionários, Escrituração.).

  2. Com a ajuda de um cronômetro observe (e anote) o tempo que o sistema leva para:

    -Abertura da rotina
    -Inserção e gravação  de informações na rotina (Ex: Inserir uma empresa ou funcionário em alguma rotina de cadastro e gravar alguma informação nele) 
    -Geração de informações e relatórios na rotina(Ex: geração de algum relatório, algumas rotinas que podem ser consideras neste teste: "Resumo de tributos, Balancete de Verificação, Emissão de Livros fiscais e geração de eventos REINF e Esocial")

    Isto ajudará no andamento da análise, pois desta forma será possível constatar melhoras ou pioras após alterações.

Análise:


Para uma análise de ambiente completa alguns pontos podem ser levantados, sendo eles:

  1. Servidor:
    - Trata-se de um Servidor com HD ou SSD?
    - Qual o processador do Servidor?
    - Quantos GB de RAM o servidor possuí?
    - Qual o sistema operacional do Servidor (Windows)?
    - Qual o espaço livre em disco no Servidor? 
    - Trata-se de um Servidor exclusivo Prosoft ou um Servidor com mais aplicações em funcionamento?
    - O Servidor possuí antivírus ativo?
    - O Servidor é reiniciado com qual frequência? 

    Servidor deverá atender aos requisitos mínimos do documento: G21 - Política de Ciclo de Vida dos Produtos Prosoft



  2. Como lentidão ocorre?

    - A lentidão é frequente ou ocorre somente em momentos de maior sobrecarga do sistema?  (Ex: Durante alguma entrega ou fechamento)?
    - A lentidão ocorre em todos os módulos ou apenas em módulos específicos? (Ex: Ocorre somente no módulo Social ou Fiscal) 
    -  A lentidão ocorre em todas as máquinas ou apenas no Servidor?
    - A lentidão passou a ser observada em que momento

  3. Qual é a configuração do ambiente?

    - O ambiente é TS (Onde os usuários conectam no Servidor através de um remoto) ou instalações locais, onde o sistema é instalado nas estações dos usuários?


  4. Quantidade de usuários, para isto responda:

    -  Quantos usuários em média utilizam o sistema?
    - Qual o número máximo de usuários que utilizam o sistema?

  5. Pervasive:
    -Qual versão de Pervasive utilizada? Trata-se de uma versão Server ou Workgroup?

Após análise:


Após analisar os fatores citados anteriormente, prossiga com a análise do ambiente:

  1. Servidor:

    - Se lentidão estiver ocorrendo no momento do atendimento, no gerenciador de tarefas é necessário observar se algum dos itens circulados apresentam índices elevados de consumo:


    -Em caso de CPU, Memória e Disco acima de 90%, ainda no gerenciador de tarefas em "Detalhes" filtre por CPU ou memória para identificar qual processo está consumindo memória e CPU:


    -Consumo alto da CPU: Se a CPU estiver com consumo alto, é necessário verificar se o Servidor trabalha com um HD ou SSD, em caso de um HD, é válido lembrar que para um melhor desempenho, recomenda-se que o Servidor possua um SSD, caso possua SSD e ainda sim esteja com um consumo alto de CPU, deverão ser reiniciados os serviços Prosoft, para isto utilize: I05 - Como liberar usuário preso no sistema

    -Consumo alto de memória:

    Ambiente Local: O Prosoft exige hoje no mínimo 8GB de RAM, destes, 5GB serão destinados a instalação do Prosoft, neste caso é necessário identificar se a quantidade de memória disponível atende aos requisitos do sistema. Ex: O servidor trabalha com outras aplicações que ocupem memória? O Servidor trabalha com uma quantidade elevada de usuários comparando com a quantidade de memória disponível? 

    Ambiente TS: O Prosoft exige hoje no mínimo 8GB de RAM em caso de ambiente TS recomenda-se além das 8GB mínimas, cerca de 1GB para cada usuário do TS, então caso neste ambiente memória esteja com consumo elevado, também analisar se a memória do Servidor é suficiente para o ambiente.

    Ainda sim, em ambos os casos recomenda-se que os serviços Prosoft e se possível o Servidor sejam reiniciados, pois um tempo elevado de atividade pode ocasionar em um consumo de memória elevado das aplicações para isto, utilize: I05 - Como liberar usuário preso no sistema

    Caso ferramentas de terceiros estejam ocupando memória, cliente deve ser orientado a verificar com um técnico.

    -Antivírus Ativo: Se Servidor e estações estiverem com antivírus ativo é necessário verificar com o técnico do Servidor se as exceções estão devidamente configuradas, pois a leitura das pastas Prosoft por parte do antivírus poderá ocasionar em lentidão no sistema (se aplica a servidor e estações)

    -Servidor sem espaço em disco: Pouco espaço em disco pode ocasionar em lentidão, neste caso orienta-se que seja verificado o procedimento do guia:  A2123 - Orientações sobre exclusão de arquivos e limpeza de disco.


  2. Como lentidão ocorre:

    -Caso lentidão no servidor e estações:
    -Verificar se as configurações de Performance Tunning estão preenchidas conforme guia: I492 - Performance Tunning do Pervasive - Servidor
    -Verificar se estão sendo executados Backups ou aplicações que estão consumindo o Servidor.
    -Verificar se os requisitos mínimos estão sendo atendidos: G21 - Política de Ciclo de Vida dos Produtos Prosoft
    -Verificar se o Servidor está sem reiniciar por muito tempo.
    -Reiniciar os serviços Prosoft, Pervasive e SQL: I05 - Como liberar usuário preso no sistema
    -Recriar as DSN´s apontando para caminho físico, (para isto, recrie a DSN Proemp00 para caminho físico e realize a manutenção de DSN´s : I408-Como realizar a manutenção das DSNs
    -Verificar se existe antivírus ativo.

    -Caso lentidão ocorra somente nas estações:

    É válido lembrar que o desempenho no Servidor sempre será melhor (por uma questão de máquina e rede), mas caso o desempenho no Servidor seja muito superior em relação as estações (e estações sejam muito lentas) deverão ser analisados fatores como:

    -Mapear estações por IP (caso estejam mapeadas pelo nome ou vice versa): I19 - Mapeamento Prosoft não é encontrado no momento da instalação
    -Verificar se o Ping nas estações está apresentando muita variação: I462-Erro 3012 - Falha na comunicação de Rede com Servidor
    -Verificar se existe algum antivírus ativo configurado, se sim ajustas nas exceções as pastas Prosoft.
    -Verificar se Pervasive está configurado nas estações: I29 - Manual de configurações do Pervasive - Estação
    -Verificar se estações utilizam VPN ou conectam via WIFI (caso a resposta seja positiva, isto pode influenciar no desempenho).



  3. Versão do Pervasive:
    Para analisar a melhor versão de Pervasive para o cliente deve-se considerar a quantidade de usuários no sistema portanto:

    -Versão Workgroup 11: entre 5 e 10 usuários
    -Versão Workgroup 13 e 15:  Até 35 usuários
    -Versões Server: Ilimitado

    Entretanto, em caso de versões Workgroup deve-se considerar o tamanho da base: Ex: embora o escritório tenha uma quantidade de usuários inferior a 10 e trabalhe com Workgroup 11, mas ainda sim possua uma base de tamanho elevado, o Pervasive provavelmente não comportará a movimentação do sistema. 



(Não remova esse quadro)
Essas informações não se tonam parte do conteúdo em sua nova página, elas ficam ocultas e só aprecem para usuário logado e se o artigo/dica estiver em modo de edição!
<div id="text-end"></div>




<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-193974933-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag2(){dataLayer.push(arguments);}
  gtag2('js', new Date());

  gtag2('config', 'UA-193974933-1');


  function gtagevents (action,category) {
     console.log(category + ':' + action);
     gtag2('event',action,{event_category:category,event_label: document.title});
  };

</script>

<script src="https://player.vimeo.com/api/player.js"></script>
<script>
    (function(){
        // RASTREIO DE USO DO VÍDEO
        function gtagvideo(action){
           gtagevents(action,'Video')
        }

        var iframe = document.querySelector('iframe');
        var player = new Vimeo.Player(iframe);

        var seeking = false;
        var priorTime = 0;
        var currentTime = 0;
        var reportouFinalDoConteudo = false;

        // se pausar o play é acionado também.
        player.on('play', function(data) {
            if(data.seconds == 0){ 
              gtagvideo('video-iniciado');
            }
            priorTime = data.seconds;             
        });

        player.on('ended', function() {
            gtagvideo('video-finalizado');
        });

        //seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking).
        // pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração.
        player.on('seeking', function(data) {               
            seeking = true;
        });


        player.on('pause',function(data){
            gtagvideo('video-pausado');    
        });

        player.on('timeupdate', function(data) {
            if(seeking){
                if(currentTime < priorTime){
                    gtagvideo('video-voltando');    
                }
                if(currentTime > priorTime){
                    gtagvideo('video-avancando')
                }
                seeking = false;
            }
            priorTime = currentTime;
            currentTime = data.seconds;


           var finalDoConteudo = (data.duration - data.seconds) < 5;
           if(finalDoConteudo && !reportouFinalDoConteudo){
            gtagvideo('conteudo-finalizado')
            reportouFinalDoConteudo = true;
           }
        });

        player.on('fullscreenchange', function() {
            gtagvideo('video-fullscreen');
        });
    })();
</script>

<script>
 // RASTREIO DO USO DE AUDIO
 (function(){
    function gtagaudio(action){
           gtagevents(action,'Audio')
    }            

    var audio = document.querySelector("audio");

    var seeking = false;
    var priorTime = 0;
    var currentTime = 0;

    audio.addEventListener('play',function(){
        if(audio.currentTime == 0){
          gtagaudio('audio-iniciado');
        }
        priorTime = audio.currentTime;        
    });

    audio.addEventListener('ended',function(){
        gtagaudio('audio-finalizado');
    });

    audio.addEventListener('pause',function(){
        gtagaudio('audio-pausado');
    });

    audio.addEventListener('seeking', function(data) {               
        seeking = true;
    });

    audio.addEventListener('timeupdate', function(data) {               
        if(seeking){
                if(currentTime < priorTime){
                    gtagaudio('audio-voltando');    
                }
                if(currentTime > priorTime){
                    gtagaudio('audio-avancando')
                }
                seeking = false;
            }
            priorTime = currentTime;
            currentTime = audio.currentTime;
    });    
 })();
 </script>

<script>
    (function(){
        var terminou = false;
        //RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA
        document.addEventListener('scroll',() => {
            if(document.getElementById('text-end').getBoundingClientRect().top < window.innerHeight){
                if(!terminou){
                    terminou = true;
                    gtagevents('artigo-lido','Pagina')
                }
            }else{
                terminou = false;
            }
                
        });
    })();
 </script>