Virtualização do QVS – Mitos e Verdades

Fala galera, tudo bom?

Esse post é interessante, pois sempre que falamos sobre QlikView Server ouvimos a famosa frase: QlikView Server em uma máquina virtual perde muita performance.

Não é de se surpreender que a rápida adoção da virtualização de servidores dentro de grandes empresas tem sido impulsionado pela oportunidade de redução de custos. Ao permitir que vários sistemas compartilhem uma única peça de hardware de servidor, a virtualização de servidor permite que as empresas reduzam, de forma significativa, o número de servidores físicos que necessitam de adquirir e gerenciar. Além disso, há ganhos adicionais significativos que podem ser realizados através de reduções correspondentes em infra-estruturas relacionadas, incluindo a capacidade do centro de dados e consumo de energia.

Vamos conhecer alguns ganhos significativos sobre a virtualização:

  1. Permite que os administradores possam mover um servidor ativo para outra parte de hardware (virtualizado) sem tempo de inatividade, eliminando a necessidade de paralisações programadas para apoiar a manutenção de hardware ou atualizações.
  2. Em uma plataforma de virtualização, é possível, através de algoritmos, automatizar o controle de recursos dos servidores virtualizados. Como isso funciona? Digamos que separamos 8 cores e 32gb para um determinado servidor, porém a aplicação não esta utilizando totalmente esses recursos, dessa forma a plataforma virtual identifica essa subutilização e repassa esses “pedaços” de hardware que estão sobrando para outro servidor virtual que esteja necessitante naquele momento.
  3. Fácil administração e supervisão dos ambientes virtuais.
  4. Fácil implementação de backup.
  5. Entre outros (chega de puxar sardinha rsrs).

A QlikTech suporta totalmente produtos QlikView Server em um ambiente virtualizado. (Para o total apoio
declaração, por favor consulte o Apêndice declaração de apoio a virtualização do QlikView)
Mas calme! Um cuidado especial deve ser tomado quando se considera a virtualização de qualquer aplicação (sistema) que se utilize intensamente de CPU e memória. O QlikView Server não é excepção.

O QlikView fornece aplicações que são movidas por motor de analytics in-memory, ou seja, que fornece em tempo real recálculo de relatórios, visualizações e dashboards diretamente para os usuários de negócios.
Embora muitos vão achar que eles podem virtualizar todos os componentes da sua implantação, entenda que o hypervisor* sofrerá com uma sobrecarga de desempenho e, portanto, aplicações complexas e com clientes exigentes com desempenho deverão ser implantados em um hardware físico dedicado. É importante reconhecer que, mesmo nestes casos, muitos outros componentes da implantação podem ser virtualizados.

* Hypervisor, ou Monitor de Máquina Virtual (VMM), é uma camada de software entre o hardware e o sistema operacional. O VMM é responsável por fornecer ao sistema operacional visitante a abstração da máquina virtual. É o hypervisor que controla o acesso dos sistemas operacionais visitantes aos dispositivos de hardware.

Considerações da virtualização do QVS

Ao considerar a virtualização da plataforma QlikView, o componente com maior preocupação é o QlikView Server (QVS). O QVS é o componente que contém o mecanismo de análise in-memory, ou seja, é o coração da capacidade do QlikView entregar o recálculo dos relatórios “on-the-fly”, desta forma usuários podem explorar dinamicamente seus dados.

O desempenho do QVS é impulsionado por uma série de fatores que podem ser categorizados em três etapas:

  1. Ambiente (Environment)
  2. Desenvolvimento de aplicações (Application)
  3. Utilização (Usage)

Virtualização

Ao discutir o desempenho em seu ambiente QlikView, é importante considerar todos esses componentes.
Do ponto de ambiente, QlikView Server é particularmente sensível a memória e CPU. Isso é diferente de muitas outras aplicações de BI que sejam dependentes de disco I/O e dependência da rede.

QlikView Server é uma plataforma de BI baseado em in-memory, ou seja, memória em tempo real. Portanto, o desempenho QlikView não depende apenas na memória disponível e da CPU, mas também a velocidade à qual os processadores podem comunicar memória.

Impactos na virtualização do QVS

Existem muitos fatores que afetam o desempenho do QlikView Server em um ambiente virtualizado, incluindo o modelo de hardware subjacente, as configurações da BIOS, o hypervisor software, bem como a utilização de reservas de recursos ou o excesso de inscrições.
Testes feitos pelo QlikTech Scalability Center* mostrou que a adição de um servidor virtualizado geralmente tem um pequeno impacto no desempenho (menos do que 5%). No entanto, em alguns cenários de teste, particularmente aqueles em que o servidor estava sob carga pesada, a virtualização teve uma perca de 35% no desempenho.

* QlikView Scalability Group – Visitem a página da comunidade aqui.

Recomendações para a virtualização do QVS

Planejamento de capacidade

Dimensionamento adequado e monitoramento contínuo do ambiente QlikView é a chave para o sucesso em
qualquer implantação QlikView, mas isso é especialmente verdadeiro em um ambiente de servidor virtualizado.

Testes de resultados demonstraram que o desempenho se degrada mais rapidamente no servidor de virtualização sobre
hardware físico dedicado especialmente quando sob carga pesada.
O controle da CPU e da memória podem ser implementados com uma variedade de sistemas normalizadores. Existem diversas ferramentas disponíveis no mercado, inclusive ferramentas gratuitas. Além disso, a ferramenta QlikView Ops-Monitor pode ser usada para fornecer uma visão mais aprofundada das operações do QlikView Server.

Uso de Whitelist Servidor, acessórios e configurações da BIOS

Configuração da BIOS

Whitelist de Hardware de Servidores

CPU e memória devem ser reservados para o QVS

A perda de performance em uma virtualização ocorre quando o hypervisor perde capacidade de acessar os rescursos subjacentes do hardware e isso causa afeta o QVS. Portanto deve-se reservar CPU e memória para a utilização do QVS. Essa configuração pode ser realizada através do Hypervisor.

Manter Configuração

Ambientes de servidores virtualizados estão expostas a riscos operacionais únicos que precisam ser considerados. Por sua própria natureza, a virtualização abstrai o sistema operacional a partir do hardware subjacente, permitindo que os administradores, possam mover os clientes de um servidor para outro, a fim de realizar a manutenção de hardware ou atualizações com pouca ou nenhuma interrupção para os usuários.

Isto significa que seria muito fácil mover o QVS de uma configuração (hardware) adequado para uma configuração (hardware) menos ideal sem o conhecimento do administrador do QlikView.

QVS em hardware físico dedicado

Apesar do apoio da QlikTech, muitos clientes ainda vão optar por implantar o QlikView Server em um hardware físico dedicado, ao passo que outros componentes da aplicação incluindo Access Point e Publisher são implantados virtualmente.

Conclusão

Virtualização de Servidores tornou-se rapidamente um componente estratégico da gestão de infra-estrutura corporativa e em alguns casos, tornou-se mesmo um mandato corporativo.

O QlikView é suportado em um ambiente de servidor virtualizado. No entanto, como acontece com qualquer aplicação de uso intensivo de CPU e memória, um cuidado especial deve ser dada à virtualização do QlikView Server.
Com o dimensionamento e configuração adequada, muitas empresas vão descobrir que a implantação totalmente virtualizada do QlikView fornecerá a mesma capacidade e desempenho que eles precisam para entregar para seus usuários.

Adequado dimensionamento, planejamento da capacidade e os recursos do sistema são os principais fatores necessários para garantir o sucesso.

Para algumas empresas, no entanto, o risco de problemas de desempenho em um ambiente muito utilizado e/ou com rápido crescimento irá resultar na decisão de implantar QVS em um hardware físico dedicado. Mas mesmo aqui, muitos outros componentes da implantação podem ser virtualizados.
No final, o desempenho do QlikView Server não é um tema simples e a virtualização é apenas um componente a considerar.

Lembrem-se sempre de buscar ajuda profissional para assim evitar qualquer problema desnecessário em seu ambiente de QlikView.
Não posso me esquecer, apêndice sobre o suporte da Qliktech para a virtualização.

Supports Statement

No próximo post passarei uma configuração muito importante para o VMware. Aguardem!!

Até a próxima semana pessoal 🙂

FONTE: A fonte para o material foi retirado do site da VMware, da comunidade do QlikView Scalability Group e de outras pesquisas.

Anúncios

Configuração na BIOS para melhor desempenho no QlikView Server

Continuando o assunto de como melhorar o ambiente do nosso querido QlikView Server, falaremos sobre as opções que devem ser alteradas na BIOS desse servidor.

Essa opções irão influenciar diretamente na utilização de seu hardware e assim ter o ganho esperado. Note que algumas das configurações não estarão disponíveis devido ao modelo do hardware do servidor. Neste caso não temos o que fazer, pule para a próxima opção.

Alguns termos que utilizarei serão bem técnicos, mas para aqueles que não possuem interesse, basta realizar a configuração e reiniciar o servidor.

IMPORTANTE: Apesar dessas opções estarem esclarecidas pela própria Qlik, é sempre bom fazermos as alterações e verificar se realmente obtivemos ganho de performance, em caso contrário, volte as configurações originais de fábrica de sua BIOS.

Vamos as opções e depois irei explicar, tecnicamente, alguns conceitos:

Opção

Valor

Hyper-threading Disabled ou OFF
Power Management (Power Plan) Max performance/ High Performance
Node Interleaving Enabled
NUMA Optimized OFF
Turbo Boost Enabled
Memory configuration / Hardware prefetch Enabled

Hyper-threading

O que é?

Hyper-Threading ou hiperprocessamento é uma tecnologia usada em processadores que o faz simular dois processadores tornando o sistema mais rápido quando se usa vários programas ao mesmo tempo. Essa técnica foi criada para oferecer maior eficiência na utilização dos recursos de execução do processador. Segundo a Intel, a Hyper-Threading oferece um aumento de desempenho de até 30% dependendo da configuração do sistema.

Mas porque isso seria ruim para o QlikView?

Dependendo do tamanho do cache L1, o Hyper-Threading simplesmente divide-o ao meio para fazer um único processador simular a utilização de 2. Se o L1 é muito pequeno, dividi-lo pode significar maior lentidão, pois as páginas de processamento dos processos de QlikView são muito grandes e não caberão nesse processo dentro do cache que o Hyper-Threading dividiu. Faltando espaço no cache L1, o processador começa a escrever esses processos na memória RAM e essa é a grande perda de performance que o QlikView sofrerá.

O efeito é semelhante a esgotar-se a memória RAM física disponível e o processador começar a fazer SWAP, ou seja, utilizar o disco físico para armazenar as informações que estão “sobrando”.

NUMA

O que é?

NUMA (Non-Uniform Memory Access)

A arquitetura tradicional para suportar servidores multiprocessados se chama SMP (Symmetric Multiprocessor). Neste modelo, apenas um processador tem acesso a memória num determinado momento. Quanto mais processadores são adicionados, mais sobrecarregado fica o barramento de acesso à memória, o que pode acabar sendo um fator limitante para a performance do servidor.

No sistema NUMA, as CPU’s estão organizadas em pequenos sistemas chamados de nodes. Cada node possui seu próprio conjunto de processadores e pool de memória e são conectados a um sistema maior através de um barramento de alta velocidade.

Mas porque isso seria ruim para o QlikView?

Em primeiro lugar o QlikView não é um software NUMA-aware, ou seja, não esta homologado para funcionar nesse sistema.

O QlikView é um software que se utiliza de MUITA memória, sabemos que se disponibilizarmos 128gb de ram ele vai consumir esses 128gb, pois foi assim que ele foi construído. No momento em que existe um mapeamento de cada núcleo para cada barramento de memória, corremos o risco desse barramento de memória não caber mais informação e é nesse momento que o QlikView perde sua performance, pois geram-se gargalos de mapeamento desse novo pedaço de memória, ou seja, precisa-se passar a informação para o atual dono desse espaço de que um outro “cara” precisa se utilizar dele – imagine você tendo que dar o seu terreno, pois o vizinho já ocupou toda a sua área rsrs.

O que a desativação NUMA faz é deixar toda a memória disponível, independentemente do número de núcleos e da quantidade de RAM instalado no sistema, de modo com que o QlikView possa se beneficiar de toda a memória sem saltar de um núcleo para o outro e evitar os gargalos.

Para as demais configurações a ativação não gerará nenhum tipo de queda de performance em seu ambiente QlikView Server.

Por hoje é isso pessoal!

Aproveitem o carnaval e até a próxima semana.