Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 MB | Quantidade de usuarios simultaneos | Fator Multiplicador | Qtd de RAM em MB ocupada no servidor | RAM disponivel em servidor 32GB | RAM disponivel em servidor 64GB | RAM disponivel em servidor 96GB | RAM disponivel em servidor 128GB |
150 | 1 | 40 | 6.000 | 26.000 | 58.000 | 90.000 | 122.000 |
150 | 2 | 40 | 12.000 | 20.000 | 52.000 | 84.000 | 116.000 |
150 | 3 | 40 | 18.000 | 14.000 | 46.000 | 78.000 | 110.000 |
150 | 4 | 40 | 24.000 | 8.000 | 40.000 | 72.000 | 104.000 |
150 | 5 | 40 | 30.000 | 2.000 | 34.000 | 66.000 | 98.000 |
150 | 6 | 40 | 36.000 | Não suporta | 28.000 | 60.000 | 92.000 |
150 | 7 | 40 | 42.000 | Não suporta | 22.000 | 54.000 | 86.000 |
150 | 8 | 40 | 48.000 | Não suporta | 16.000 | 48.000 | 80.000 |
150 | 9 | 40 | 54.000 | Não suporta | 10.000 | 42.000 | 74.000 |
150 | 10 | 40 | 60.000 | Não suporta | 4.000 | 36.000 | 68.000 |
150 | 11 | 40 | 66.000 | Não suporta | Não suporta | 30.000 | 62.000 |
150 | 12 | 40 | 72.000 | Não suporta | Não suporta | 24.000 | 56.000 |
150 | 13 | 40 | 78.000 | Não suporta | Não suporta | 18.000 | 50.000 |
No aguardo,
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
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
Bom dia a todos.
Ótimas as informações passadas pelo Pablo.
Serão de suma inportância no desenvolvimento dos meus projetos!
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
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.
Valew fera!