5 Replies Latest reply: Jun 27, 2013 12:23 PM by Rodolfo Ferreira RSS

    Qtd de RAM ocupada por qvw / usuario

    Rodolfo Ferreira

      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,

        • Re: Qtd de RAM ocupada por qvw / usuario
          Pablo Labbe

          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