BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Escalabilidade e gargalos comuns de desempenho: uma lista de listas

Escalabilidade e gargalos comuns de desempenho: uma lista de listas

Três desenvolvedores experientes criaram uma relação dos gargalos mais comuns de desempenho, com base na experiência adquirida ao longo de vários anos de criação e implantação de sistemas. A lista envolve lições aprendidas em diversas áreas de TI, com especial foco na escalabilidade de aplicações e seus desafios.

A lista inicial foi ideia de Russel Sullivan, arquiteto e criador do Alchemy Database, que havia levantado uma sequência de lições ao escalar sistemas, destacando que existem cerca de 20 gargalos comuns de desempenho. Aqui incluímos uma seleção das sugestões iniciais de Sullivan.

A escalabilidade é um tema recorrente:

A arte de escalar um sistema é mantê-lo o mais sem estado possível, mas sem introduzir complexidade desnecessária ao fazê-lo.

O baixo acoplamento deve ser prioridade, quando se busca a escalabilidade, diz Sullivan: "Se aparecem gargalos em vários locais, está na hora de rearquitetar o sistema."

Sullivan recomenda também o uso generoso de lógica no lado do cliente:

Há muitos truques que podem ser usados para aproveitar o uso do processador no cliente. Uma parte importante da escalabilidade é mover a lógica para onde a capacidade de processamento é abundante.

O uso de banco de dados recebe também atenção especial. Um aspecto digno de nota é que o autor não aposta todas as fichas no NoSQL:

Os bancos relacionais têm o seu lugar. Dados estruturados são superiores em desempenho, mas inferiores em flexibilidade. Se faz sentido armazenar os dados no banco relacional, se os dados normalizam bem, então faça; mas evite ficar preso ao produto e ao modelo. Sempre veja os seus dados como estando apenas em um esquema temporário, capazes de serem modelados de forma diferente.

Ainda sobre persistência, Sullivan defende que consultas longas e curtas não podem "conviver em paz":

Tente segregar as cargas das consultas. Se isso não for possível, pense em relaxar algumas exigências do ACID para consultas de longa duração. Por exemplo, execute-as em lote.

E não são poupadas sugestões mais polêmicas:

A ideia de utilizar seus próprios servidores e em seguida acionar instâncias em nuvem para lidar com picos de tráfego é uma maneira inteligente de otimizar os custos com a nuvem. Mas na prática pode ser complexo demais, se for necessário sempre sincronizar dados para a nuvem. É criado todo um outro nível de sincronização de dados e de questões de segurança.

Ele comenta também das vantagens do uso da compressão:

A compressão pode ser usada para manter mais dados na memória RAM, para diminuir a quantidade de I/O em disco, para reduzir o tráfego da rede e para retardar ou minimizar a necessidade de escalabilidade horizontal.

Indo além

Além dos pontos colocados por Sullivan, Todd Hoff, do blog High Scalability, escreveu um post complementar "a grande lista dos 20 gargalos comuns", tomando como base a ideia de Sullivan e agregando impressões de Aurelien Broszniowski sobre o tema.

Na lista final, uma relação mais simples e direta, são citados como gargalos itens que vão de técnicas de programação a falhas em processos de desenvolvimento, passando por caching e compressão, bancos de dados, sistemas operacionais, sobrecarga da CPU, falhas de rede, entre outros possíveis gargalos.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT