Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

QVS.exe consumindo muita memória

Boa tarde,

tenho 3 aplicações no meu access point, das quais, juntando todas elas, o valor total é de 800mb.

Ao abrir uma aplicação no browser, o consumo do QVS.exe aumentou para mais de 1gb, e ao simular o uso da aplicação a memória aumentou ainda mais, chegando em alguns momentos gerar a mensagem de out of object memory, além de exibir lost connection.

Já configurei no QMC o aumento do cálculo do objeto para 1800 segundos, timeout dos documentos, 480 minutos.

Certas dimensões que usam cálculo já foram colocadas condicionais.

Quais outras dicas para melhorar a performance da aplicação?

Grato pela atenção.

Labels (1)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa noite.

No caso de hardware, se não for maquina virtual dar uma olhada na questão NUMA.

Outra situação seria questão de datas (se tem hh:mm) e os autonumber...

Em um modelo reduzi o consumo de uns 300mega da memoria (caiu de 2.2g para 1.9g) somente usando o floor() nas datas (SQL Server - datetime) e mudando as chaves concatenadas (Campo1 & Campo2 &....) por autonumber.

Recentemente li um bom post do HIC sobre os hops (joins).

A Myth about the Number of Hops

furtado@farolbi.com.br

View solution in original post

12 Replies
nicolett_yuri

Paulo, você precisa analisar alguns temas nos seus qvws:

  • Possui tabela(s) sintética(s)?
  • Como esta a modelagem de sua aplicação?
  • Como estão os cálculos (expressões) de seus gráficos? São complexos?
  • Algum gráfico possui dimensão calculada?
  • Possui ilhas de dados (tabelas isoladas) que são relacionadas com outras tabelas, em gráficos através de IFs?
  • Sua aplicação possui muitas imagens anexadas?
  • Sua aplicação possui macros?

Em relação ao servidor:

  • Possui somente o serviço do QlikView Server funcionando?
  • Qual a versão do QvServer?
  • Qual o hardware de seu servidor? (Memória/Processamento)
  • Quantidade de usuários que acessam cada aplicação.
  • Existe carga sendo executada durante horário comercial da empresa?
Not applicable
Author

Não estou acessando agora o servidor, vou responder alguns pontos que já sei:

Paulo, você precisa analisar alguns temas nos seus qvws:

  • Possui tabela(s) sintética(s)?
  • Como esta a modelagem de sua aplicação?
  • Como estão os cálculos (expressões) de seus gráficos? São complexos?
  • Algum gráfico possui dimensão calculada?
  • Possui ilhas de dados (tabelas isoladas) que são relacionadas com outras tabelas, em gráficos através de IFs?
  • Sua aplicação possui muitas imagens anexadas?
  • Sua aplicação possui macros?

Em relação ao servidor:

  • Possui somente o serviço do QlikView Server funcionando?

       Somente o QlikView Server que funciona nesse servidor.

  • Qual a versão do QvServer?

       QvServer 11 SR5.

  • Qual o hardware de seu servidor? (Memória/Processamento)
  • Quantidade de usuários que acessam cada aplicação.

      Hoje está em processo de homologação pelo cliente, algo em torno de 3 usuários.

  • Existe carga sendo executada durante horário comercial da empresa?

        Não existe carga sendo executada.

pablolabbe
Luminary Alumni
Luminary Alumni

Paulo,

  - Uma aplicação quando aberta no servidor, pode expandir para 4 a 10 vezes o seu tamanho em QVW.

  - Como Yuri comentou, teria que avaliar modelo de dados e expressões nos objetos.

  - Número excessivo de objetos em uma aba sendo mostrados simultaneamente consome recurso de cpu e memória.

  - Quanto a timeout de objeto, não adianta muito alterar o parâmetro no servidor, o ideal é focar na raiz do problema que é a aplicação e seus objetos.

   - Quanto a mensagem de lost connection, teriamos que avaliar os logs do serviço QVServer e ver se tem alguma mensagem. Outro lugar para olhar é nos eventos do Windows.

Abraço,

Pablo Labbe

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa noite.

No caso de hardware, se não for maquina virtual dar uma olhada na questão NUMA.

Outra situação seria questão de datas (se tem hh:mm) e os autonumber...

Em um modelo reduzi o consumo de uns 300mega da memoria (caiu de 2.2g para 1.9g) somente usando o floor() nas datas (SQL Server - datetime) e mudando as chaves concatenadas (Campo1 & Campo2 &....) por autonumber.

Recentemente li um bom post do HIC sobre os hops (joins).

A Myth about the Number of Hops

furtado@farolbi.com.br
Not applicable
Author

Paulo, você precisa analisar alguns temas nos seus qvws:

  • Possui tabela(s) sintética(s)?

        Não possuí tabela(s) sintética(s).

  • Como esta a modelagem de sua aplicação?

         Modelagem do tipo estrela.

  • Como estão os cálculos (expressões) de seus gráficos? São complexos?

         Os cálculos são set analysis com sum. Algo não muito pesado, cálculos normais de vendas.

  • Algum gráfico possui dimensão calculada?

        Possuí, agregação, formatação numérica e data e um if de agregação, um total de 6 dimensões.

  • Possui ilhas de dados (tabelas isoladas) que são relacionadas com outras tabelas, em gráficos através de IFs?

         Não possuí.

  • Sua aplicação possui muitas imagens anexadas?

         Tem imagens, porém são logos de empresas, nada muito grande.

  • Sua aplicação possui macros?

        Possuí macros, porém só são acionadas quando clicadas no botão, mas não é algo complexo, só resetar campos, realizado.

Em relação ao servidor:

  • Possui somente o serviço do QlikView Server funcionando?

       Somente o QlikView Server que funciona nesse servidor.

  • Qual a versão do QvServer?

        QvServer 11 SR5.

  • Qual o hardware de seu servidor? (Memória/Processamento)

        2 processadores e memória de 24gb.

  • Quantidade de usuários que acessam cada aplicação.

        Hoje está em processo de homologação pelo cliente, algo em torno de 3 usuários.

  • Existe carga sendo executada durante horário comercial da empresa?

        Não existe carga sendo executada.

Farei uma revisão na aplicação toda pois não foi desenvolvida/trabalhada por mim.

Not applicable
Author

Boa Alessandro,

estou lendo aqui e fiquei intrigado de como a arquitetura do servidor, com mais sockets de processador e até processador melhor, roda os reloads tasks mais demorado.

Muito bom material Alessandro.

Obrigado à todos pelas dicas.

nicolett_yuri

Bom, a macro limpa todo o cache do servidor, então te oriento a não utiliza-la neste momento (até que identifiquemos a causa raiz da lentidão).

Elimine todas as dimensões calculadas dos gráficos.

pablolabbe
Luminary Alumni
Luminary Alumni

2 cores eu acho pouco, o ideal é no minimo 4 para homologação.  O Qlikview calcula os gráficos em multithread de forma que ele ocupa todos os processadores disponíveis quando ele renderiza os gráficos. Se você tem cálculos complexos, e usuários simultâneos, somente com 2 cores você terá um gargalo de processamento..

Você tem 1 core para SO e 1 core para o Qlikview. 

Se colocar uma carga nesse meio tempo para rodar, ai piora.

Not applicable
Author

Pablo, isso é em ambiente de produção.

Vou analisar melhor a aplicação, tentar otimizar ao máximo, e se faltar core ou memória, vou sugerir aumentar.

Obrigado pela dica.

Abraço.