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

Qtd de RAM ocupada por qvw / usuario

Srs,

tenho um modelo qvw de 150MB. Quando o abro para desenvolvimento ou na produção, ele ocupa aproximadamente 6GB. Isso era previsto de acordo com um treinamento que tive onde o instrutor informou que o modelo quando aberto fica até 40x maior ( 150 * 40 = 6000 ).

Hoje verifiquei que haviam 4 usuários ativos em produção e o serviço estava consumindo 23-24GB de memória RAM.

Podemos afirmar que cada usuario acessando o mesmo modelo consumirá aproximadamente 40x o tamanho do modelo fechado conforme a tabela abaixo?

Tamanho do arquivo em MBQuantidade de usuarios simultaneosFator MultiplicadorQtd de RAM em MB ocupada no servidorRAM disponivel em servidor 32GBRAM disponivel em servidor 64GBRAM disponivel em servidor 96GBRAM disponivel em servidor 128GB
150140                     6.000                         26.000                         58.000                         90.000                      122.000
150240                  12.000                         20.000                         52.000                         84.000                      116.000
150340                  18.000                         14.000                         46.000                         78.000                      110.000
150440                  24.000                            8.000                         40.000                         72.000                      104.000
150540                  30.000                            2.000                         34.000                         66.000                         98.000
150640                  36.000 Não suporta                         28.000                         60.000                         92.000
150740                  42.000 Não suporta                         22.000                         54.000                         86.000
150840                  48.000 Não suporta                         16.000                         48.000                         80.000
150940                  54.000 Não suporta                         10.000                         42.000                         74.000
1501040                  60.000 Não suporta                            4.000                         36.000                         68.000
1501140                  66.000 Não suporta Não suporta                         30.000                         62.000
1501240                  72.000 Não suporta Não suporta                         24.000                         56.000
1501340                  78.000 Não suporta Não suporta                         18.000                         50.000

No aguardo,

1 Solution

Accepted Solutions
pablolabbe
Luminary Alumni
Luminary Alumni

Olá Rodolfo,

    Calcular quanto o Qlikview vai consumir de memória não é uma ciencia exata, mas seguem algumas informações que podem te ajudar a entender como o qlikview aloca memória no servidor:

   Quando o QVW é carregado em memória, ele é descompactado e uma área de memória fica reservada para o modelo de dados. Para estimar qual o tamanho desta área inicial some o tamanho em bytes de cada QVD utilizado no script de carga, desde que você use todas as colunas no load e leia todos os registros. Exemplo: QVW tem 150 MB , mas tem como base qvds que totalizam 1.5 GB lidos inteiramente sem filtro e nem exclusão de colunas.

   Também fala-se que uma aplicação deveria crescer em média 4 x em memória em relação ao QVW, mas isto varia muito conforme o modelo de dados desenhado na aplicação e nivel de compressão dos dados.

  Depois que isto é carregado é criado uma área de cache de usuários que inicialmente é de 10 % o tamanho do QVW já em memória.

  Para cada usuário, como regra geral, é alocado mais 10 % sobre o tamanho inicial. 

  Fatores que influenciam para este número seja muito maior:

  - Existencia de tabelas de chave sinteticas

   - Muitas tabelas fato consolidadas através de LinkTables

   - Modelo de dados fragmentado (snowflake schema)

   - Campos com muitos valores distintos (chaves primarias, timestamps)

   - Expressões de layout muito complexas

  Outra questão importante é que o Qlikview Server vai alocando memória de forma crescente até ele ocupar toda a memória da máquina. Existe um parametro chamado "Working Set limits" que vem setado por padrão 70 % para limite inferior e 90 % para limite superior. O Qlikview irá alocar memória até 70 % da máquina sem se preocupar em desalocar, entre os limites de 70  e 90 ele vai começar a reciclar o cache de usuário, e se ele começar a extrapolar o limite máximo, ai você pode ter problemas de lentidão e travamento no servidor. O log do qlikview server também começa a registrar eventos indicando que o ambiente está excedendo os parametros definidos. Para desalocar a memória , somente reiniciando o serviço do Qlikview Server.

  Nunca vi uma aplicação crescer 40 x em memória. Creio que no seu caso é necessário rever o modelo de dados que foi desenhado e/ou expressões de layout, senão esta aplicação terá vida curta, já que na minha opinião , crescer 40 x é demais

Att,

Pablo Labbe Ibaceta

Consultor Certificado Qlikview

Vision Gestão & Tecnologia

www.visiongi.com.br

View solution in original post

5 Replies
pablolabbe
Luminary Alumni
Luminary Alumni

Olá Rodolfo,

    Calcular quanto o Qlikview vai consumir de memória não é uma ciencia exata, mas seguem algumas informações que podem te ajudar a entender como o qlikview aloca memória no servidor:

   Quando o QVW é carregado em memória, ele é descompactado e uma área de memória fica reservada para o modelo de dados. Para estimar qual o tamanho desta área inicial some o tamanho em bytes de cada QVD utilizado no script de carga, desde que você use todas as colunas no load e leia todos os registros. Exemplo: QVW tem 150 MB , mas tem como base qvds que totalizam 1.5 GB lidos inteiramente sem filtro e nem exclusão de colunas.

   Também fala-se que uma aplicação deveria crescer em média 4 x em memória em relação ao QVW, mas isto varia muito conforme o modelo de dados desenhado na aplicação e nivel de compressão dos dados.

  Depois que isto é carregado é criado uma área de cache de usuários que inicialmente é de 10 % o tamanho do QVW já em memória.

  Para cada usuário, como regra geral, é alocado mais 10 % sobre o tamanho inicial. 

  Fatores que influenciam para este número seja muito maior:

  - Existencia de tabelas de chave sinteticas

   - Muitas tabelas fato consolidadas através de LinkTables

   - Modelo de dados fragmentado (snowflake schema)

   - Campos com muitos valores distintos (chaves primarias, timestamps)

   - Expressões de layout muito complexas

  Outra questão importante é que o Qlikview Server vai alocando memória de forma crescente até ele ocupar toda a memória da máquina. Existe um parametro chamado "Working Set limits" que vem setado por padrão 70 % para limite inferior e 90 % para limite superior. O Qlikview irá alocar memória até 70 % da máquina sem se preocupar em desalocar, entre os limites de 70  e 90 ele vai começar a reciclar o cache de usuário, e se ele começar a extrapolar o limite máximo, ai você pode ter problemas de lentidão e travamento no servidor. O log do qlikview server também começa a registrar eventos indicando que o ambiente está excedendo os parametros definidos. Para desalocar a memória , somente reiniciando o serviço do Qlikview Server.

  Nunca vi uma aplicação crescer 40 x em memória. Creio que no seu caso é necessário rever o modelo de dados que foi desenhado e/ou expressões de layout, senão esta aplicação terá vida curta, já que na minha opinião , crescer 40 x é demais

Att,

Pablo Labbe Ibaceta

Consultor Certificado Qlikview

Vision Gestão & Tecnologia

www.visiongi.com.br

rphpacheco
Creator III
Creator III

Bom dia a todos.

Ótimas as informações passadas pelo Pablo.

Serão de suma inportância no desenvolvimento dos meus projetos!

Not applicable
Author

Valeu Pablo, ótimo feedback.

Realmente o modelo atual tem muitas tabelas fato unidas por LinkTable, expressões longas e complexas além de os dados dos QVDs totalizarem mais de 5GB.

Já estou estudando uma possível otimização, removendo dados não utilizados e se possível modularizar para ter modelos menores com nuvens menores.

Muito obrigado.

Abraço

Not applicable
Author

Rodolfo,

Parabéns pelo excelente tema que você levantou, isso com certeza contribuira com muitas pessoas aqui no forum.

Eu particulamente achei excelente a sua dúvida e contribui para mim, porque quero me tornar um System Administrator.

Pablo,

Parabéns pela resposta, foi um excelente feedback.  Agradeço pela contribuição e compartilhamento de conhecimento.

abraço!

Bruno Triunfo.

Not applicable
Author

Valew fera!