Cinco maneiras de acelerar aplicativos virtuais

Autor: Laura McKinney
Data De Criação: 2 Abril 2021
Data De Atualização: 1 Julho 2024
Anonim
PROGRAMAS QUE AUMENTAM FPS, FUNCIONA MESMO?
Vídeo: PROGRAMAS QUE AUMENTAM FPS, FUNCIONA MESMO?

Contente


Fonte: Viktorus / Dreamstime.com

Leve embora:

Aprenda cinco técnicas para acelerar aplicativos virtuais sem gastar muito.

Uma das frustrações de se tornar virtual para aplicativos e desktops é o desempenho. Ninguém deseja esperar mais de um segundo ou dois para que um aplicativo apareça após o lançamento. Como usuários, esperamos que nossos aplicativos apareçam imediatamente após clicar duas vezes no ícone. Não sabemos o que acontece em segundo plano para fornecer esses aplicativos entre servidor, por firewalls, balanceadores de carga, pelo ar ou pelos fios dos nossos desktops e dispositivos móveis, nem nos importamos. Nossa paciência coletiva se esgotou com as promessas de tecnologia melhor, mais rápida e mais segura, e é hora de um momento de “silêncio” dos fornecedores e da equipe de suporte. Por sua vez, os fornecedores e a equipe de suporte compartilham nossa dor e responderam com algumas tecnologias de aceleração que oferecem desempenho nos níveis instalados localmente ou próximo a eles.


Para os usuários, tudo tem a ver com velocidade, mas, diferentemente dos usuários, arquitetos, administradores de sistema e CIOs, não está procurando respostas mais rápidas aos cliques do usuário; eles também procuram escalabilidade, segurança aprimorada e expectativa de vida mais longa da tecnologia do que nunca. No final, os usuários são os críticos mais severos do fornecedor e do suporte e, por esse motivo, a exploração de técnicas e tecnologias de aplicativos virtuais está à mão. Este artigo examina cinco maneiras de acelerar aplicativos virtuais. As cinco soluções não estão em ordem específica, mas todas se concentram em uma das três principais áreas de otimização e aceleração: infraestrutura, código do aplicativo e largura de banda.

Otimização de WAN e LAN

Você pode se referir à otimização de WAN e LAN como uma solução de largura de banda, onde o objetivo final é colocar mais informações e mais dados em um pipeline de rede de maneira mais eficiente. Como o desempenho do aplicativo é tão crítico para os usuários finais, existem alguns métodos engenhosos de fornecer mais conteúdo em períodos mais curtos, como criar uma rede de entrega de conteúdo (CDN) que essencialmente move os dados para mais perto do consumidor ou do usuário final. Mover os dados para mais perto do usuário diminui a latência porque os dados precisam percorrer menos "saltos" ou redes para chegar ao seu destino. A maioria dos provedores de serviços em nuvem já possui CDNs para ajudar os proprietários de aplicativos a fornecer conteúdo distribuído próximo a seus consumidores.


O balanceamento de carga otimiza a largura de banda, espalhando solicitações de clientes entre vários servidores ou entre vários locais, a fim de compartilhar melhor o ônus da entrega de aplicativos. Os balanceadores de carga aprimoram a velocidade de entrega do aplicativo removendo os congestionamentos de tráfego que ocorrem com as solicitações do usuário para um único aplicativo. Mas eles também aumentam a confiabilidade ao poder entregar o aplicativo com eficiência a um servidor que não está sobrecarregado com outras solicitações.

Aumentar a largura de banda bruta entre aplicativos e clientes parece um aprimoramento óbvio para acelerar a entrega de aplicativos. Quem pode argumentar que uma conexão de rede gigabit entre a infraestrutura do aplicativo e o computador cliente é uma coisa ruim? Mesmo um aplicativo mal projetado e concebido receberá um aumento significativo no desempenho, aumentando a largura de banda entre a origem e o destino.

A compactação de dados e o uso de tipos de mídia compactada, como JPEG, MPEG-4 e MP3, podem ter um impacto significativo na entrega do aplicativo. A compactação de dados do conteúdo com base, o que significa HTML, CSS e JavaScript, pode resultar em uma redução de 30% ou mais no tempo de carregamento.

SSDs e matrizes Flash

SSDs e matrizes flash parecem ser a nova tecnologia "ir para" para qualquer tipo de aprimoramento do desempenho do aplicativo. É verdade que o armazenamento em estado sólido é muito mais rápido do que discos giratórios, mas também é significativamente mais caro. Talvez seja melhor considerar a solução de usar SSDs de maneira diferente - como cache para dados "quentes" em vez de dados em repouso. Os SSDs podem fornecer dados muito mais rapidamente do que os discos giratórios, mas parte dessa eficiência é perdida na tradução pela rede e por vários componentes de rede. No entanto, se alguém usar o chamado "cache flash" para aproveitar a velocidade do SSD na qual armazenar informações em cache, os resultados serão impressionantes. A Intel reporta até "12 vezes mais desempenho no processamento de banco de dados transacional e processamento até 36 vezes mais rápido de cargas de trabalho virtualizadas intensivas de E / S".

Os SSDs para armazenamento em cache de dados fazem sentido devido à velocidade na qual os dados podem ser recuperados e colocados na memória. E se os SSDs forem usados ​​exclusivamente para fins de armazenamento em cache, será necessário comprar um número significativamente menor deles para satisfazer os aumentos de desempenho resultantes. (Para obter mais informações sobre armazenamento, consulte Como otimizar sua solução de armazenamento corporativo.)

Sem erros, sem estresse - seu guia passo a passo para criar software que muda vidas sem destruir sua vida

Você não pode melhorar suas habilidades de programação quando ninguém se importa com a qualidade do software.

GPUs virtuais

Pergunte a qualquer pessoa que use um programa CAD, software de edição de vídeo ou mesmo um aplicativo de gerenciamento de projetos onde ele quer que esses aplicativos sejam carregados, e você ouvirá um coro de "localmente". Liberar esses aplicativos intensivos em gráficos em um ambiente virtual significa desastre. até o lançamento da tecnologia da unidade de processamento gráfico virtual (GPU).

As GPUs virtuais finalmente permitem que qualquer carga de trabalho seja colocada em uma máquina virtual. Os equipamentos CAD da velha escola foram agora assimilados, assim como editores de vídeo e designers gráficos. Mesmo aqueles que trabalham em três dimensões agora têm presença virtual graças às GPUs virtuais.

O que tornou essa tecnologia possível é que placas GPU especiais, compatíveis com sistemas host de máquinas virtuais, são instaladas nesses sistemas host e, em seguida, seus atributos de hardware são abstraídos ou virtualizados para que possam ser usados ​​por máquinas virtuais.

Software otimizado para desempenho

Os administradores de sistema irritados e frustrados costumam dizer que a correção de código não é o trabalho deles. O problema onipresente é, no entanto, que os desenvolvedores podem ser de primeira linha na programação de um aplicativo, mas podem não ter absolutamente nenhuma pista ou desejo de obter uma pista sobre como otimizar o código de desempenho.Geralmente, a atitude é que mais memória RAM, discos mais rápidos ou CPUs mais poderosas resolverão os problemas relacionados ao desempenho que possam existir no código, e isso é verdade até certo ponto. Como alternativa, a correção do código é muito menos dispendiosa e muito mais fácil de resolver do que reconstruir uma infraestrutura simplesmente para acelerar aplicativos mal escritos.

Existem alguns, como Donald Knuth, pioneiro da computação, que disse sobre a otimização do código do computador: "Se você otimizar tudo, sempre ficará infeliz." Não obstante as opiniões do Sr. Knuth, a otimização do código para uma quantidade equilibrada de melhorias deve ser realizada e tolerada. . Mas e os programas comerciais que você compra e implanta para seus usuários? Por exemplo, o conjunto permanente do Microsoft Office é um conjunto padrão de aplicativos que os administradores de sistema devem disponibilizar para usuários locais e remotos.

No caso de programas comerciais que os administradores não têm influência, eles devem aplicar uma estratégia de aprimoramento de desempenho em várias camadas. O armazenamento em cache de bits de aplicativos comuns será a maior tecnologia do administrador para acelerar a entrega de aplicativos grandes aos usuários.

Armazenamento em cache

Sempre que você lê ou ouve os termos pré-carregamento, pré-processamento ou pré-compilação, o escritor ou o orador provavelmente está se referindo a algum tipo de cache. O cache do aplicativo geralmente se refere ao carregamento de determinadas partes estáticas e dinâmicas de conteúdo em um buffer de memória, para que seja facilmente recuperável mediante solicitação. Os únicos bits entregues por todo o pipeline são aqueles que têm a ver especificamente com o usuário ou outros dados dependentes de tempo ou sessão. Tudo o resto é armazenado em cache na memória.

O armazenamento em cache coloca menos estresse no armazenamento, na largura de banda da rede e nas CPUs. Os dados aguardam na memória até serem chamados e prosseguem em uma jornada muito mais curta até o usuário final. A maioria das tecnologias combina cache com localização para fornecer conteúdo mais rapidamente. Em outras palavras, dados comuns - que são comuns a todos os usuários - são colocados nas CDNs mencionadas acima e depois entregues aos usuários que estão próximos dos dados solicitados. Algumas soluções chegam ao ponto de armazenar dados em cache localmente em sites remotos ou de satélite, para que esses bits comuns residam onde são consumidos e não precisem ser atualizados na WAN ou em um link da Internet.

O armazenamento em cache geralmente é um método preferido de aceleração de aplicativos, porque é muito menos dispendioso do que o desempenho comparável de soluções que dependem de aprimoramentos de infraestrutura. (Para saber mais sobre o armazenamento em cache, consulte Qual gravação é correta? Veja os métodos de armazenamento em cache de E / S.)

Sumário

Talvez a regra básica ao tentar otimizar ou acelerar aplicativos virtuais em qualquer ambiente seja primeiro tentar armazenar em cache e depois complementar essa estratégia com outras tecnologias. O armazenamento em cache é a solução menos dispendiosa e também a menos invasiva. O melhor conselho é comprar bastante RAM para cache de memória e SSDs para cache de dados quentes. Tente manter os custos gerenciáveis, mas lembre-se de que, quando você gasta dinheiro em infraestrutura e software, pode amortizá-lo ao longo da vida útil da tecnologia e distribuí-lo por usuário para facilitar a digestão pelo gerenciamento. No final, mantenha seus usuários produtivos e felizes, e eles o manterão lucrativamente empregado.