NOTÍCIA ANTERIOR
Conheça as diferenças entre as edições do Windows 7
PRÓXIMA NOTÍCIA
Conexão Wi-Fi em voos não atrai passageiros, dizem analistas
DATA DA PUBLICAÇÃO 06/07/2010 | Informática
Em picos de acesso, sites sofrem ''negação de serviço involuntária''
Hackers podem realizar um ataque chamado de “negação de serviço” que consiste, basicamente, em sobrecarregar um site ou outro serviço informático para que ele não possa ser usado pelos seus usuários legítimos. Mas o que acontece, às vezes, como aconteceu no Twitter quando o Brasil foi eliminado da Copa, é que os próprios usuários colocam os serviços em seus limites, gerando uma “negação de serviço” involuntária. Entenda por que isso acontece e como alguns sites evitam esse tipo de problema.

“Bottleneck”
Falantes de língua inglesa tem um termo interessante a seu dispor: “bottleneck”. Literalmente, quer dizer “pescoço da garrafa”; pode ser traduzido como “engarrafamento”, mas tem um uso mais abrangente do que a palavra no português. Bottleneck é qualquer fator que limita algo. (Roqueiros talvez conheçam o termo como uma técnica para tocar guitarra. Mas este espaço é sobre hackers, então a coluna não vai entrar nesse mérito, infelizmente.)

O termo é utilizado na informática para indicar o que gerou uma queda de desempenho. O bottleneck pode ser a conexão com a internet, a velocidade de leitura ou gravação do disco rígido, a lentidão do banco de dados... Cada uma dessas causas tem seus próprios bottlenecks. Por exemplo, se o banco de dados estava lento, o culpado (bottleneck) era o processador, a memória RAM ou, ainda – e mais difícil de resolver – um erro de programação no próprio banco ou na maneira que os dados foram armazenados?

Muitos ataques de negação de serviço tentam esgotar o recurso de rede, ou seja, a conexão com a internet, porque ela sempre tem um limite. Mesmo que os computadores maliciosos usados pelo ataque sejam bloqueados para que o serviço não precise gastar processador e memória para atender às solicitações do ataque, a rede ainda acaba sendo usada. A única maneira de salvar a rede como um todo é o chamado “null route”, que torna o alvo do ataque inacessível para todo mundo.

No caso dos “ataques” que acontecem sem querer, quando muitos usuários tentam de fato usar o serviço, é muito mais comum que o recurso a se esgotar não seja a rede e sim os recursos de processamento. Durante muito tempo, a internet era sim um bottleneck relevante. Hoje, o grande número de aplicações dinâmicas que exigem muito processamento para serem geradas – principalmente devido aos recursos de interatividade – faz com que o outros recursos se esgotem antes da conexão.

É por isso que o Twitter permaneceu acessível a maior parte do tempo, mas “baleiando” com a tela de erro “Twitter is over capacity” (“o Twitter está sobrecarregado”). A conexão era boa e suficiente para enviar a página de erro. Mas o site já não tinha mais capacidade de processamento para consultar o banco de dados e gerar a página.

Outro fato interessante é que, embora a interface web estivesse exibindo esse erro, clientes de Twitter que usavam a API ainda estavam funcionando razoavelmente, embora com alguma lentidão para o envio e recebimento de tweets. Isso porque o Twitter parava de atender solicitações quando estava sobrecarregado, permitindo que, esporadicamente, algumas fossem aceitas, favorecendo os clientes que acessam o site repetidamente em pequenos intervalos.

Slashdotting
O efeito de derrubar um site por excesso de visitas é muito conhecido pelos usuários do site Slashdot. O Slashdot (cujo nome significa barra ponto, ou “/.”) agrega notícias de outros sites na internet, citando apenas trechos e obrigando que os usuários abram um link para ver o texto ou matéria completa.

O Slashdot tem milhões de leitores e uma notícia, quando postada, recebe milhares de visitas imediatamente. Não é incomum que sites pequenos sejam mencionados no Slashdot. Despreparados, eles não conseguem aguentar a massa de visitantes e caem. Esse efeito é conhecido pelos frequentadores do Slashdot como “slashdotting”. Um site que caiu foi “slashdotted” ou, alternativamente: “/.ed”.

Exceto nos casos em que a notícia envolve um vídeo ou muitas fotos em alta resolução, o “bottleneck” de um slashdotting dificilmente é a conexão de internet do site. Especialmente no caso de blogs, o bottleneck acaba sendo o acesso ao banco de dados.

Como resposta, há recursos como o plugin “WP Super Cache” para o WordPress. Ele tem uma função que força o cache fixo de uma página, o que reduz drasticamente o consumo de processador para gerar aquela página. O plugin até menciona o “slashdotting” e o Digg – outro site agregador de notícias – como casos de uso.

Escalabilidade
Técnicos conhecem esse problema com o nome de “escalabilidade”. A pergunta é feita mais ou menos dessa forma: “Esse sistema escala?” Um sistema que escala bem é aquele que pode facilmente acomodar um aumento no número de usuários. Um sistema que não escala só funciona bem com baixa demanda.

O Twitter, desde que foi criado, tem sérios problemas de escalabilidade. O site não conseguiu acompanhar seu próprio crescimento. Mas esse é um desafio que muitos serviços de internet têm enfrentado por crescerem rápido demais. Há alguns anos era possível fazer um sistema mais ou menos escalável e adaptar conforme o número de usuários aumentava. Isso não é mais possível: um site ou serviço pode se popularizar tão rápido que não dá tempo para adaptar a programação.

O problema foi tão sério que o Twitter teve de mudar a linguagem de programação usada em certas partes do site, abandonado a linguagem Ruby on Rails pela Scala, uma linguagem de programação criada especificamente para resolver problemas de escalabilidade.

Afunilamento da conexão
Em casos de sites que geram muito tráfego, a conexão ainda é um problema por causa do efeito de afunilamento: há visitantes do mundo todo, mas o site se localiza em apenas um único lugar.

Devido à maneira que a internet funciona, várias “saídas” menores podem sobrecarregar uma entrada maior. Por exemplo, um país pode ter uma conexão de 10Gbps com a internet. Mas não há cabos suficientes para transferir 10 Gbps por todo o território, então alguns locais ficam 2 Gbps, outros com 3 Gbps e assim por diante.

No Brasil, por exemplo, o norte do país tem uma infraestrutura de rede inferior ao sul e ao sudeste. O governo da Amapá disse ao G1 que essa é a razão pela instabilidade em seu portal da transparência.

E o efeito continua quanto menor for local. Mesmo que um estado receba uma determinada conexão, só certa quantidade chega para cada provedor. A banda disponível em cada lugar é reduzida por causa de uma limitação física – os cabos e roteadores usados. Isso significa que mesmo que um tráfego entre no país de destino, ele pode acabar “engarrafando” por causa do afunilamento até chegar ao provedor de acesso específico. Se tudo for perfeito, na pior das limite acaba sendo imposto pela placa de rede do computador, que geralmente é de 1 Gbps.

Esse problema é resolvido espalhando-se servidores por vários locais. Como exemplo simples, se houver conexão e equipamento de qualidade, usar dois computadores já aumenta o limite da conexão para 2 Gbps. Mas se a carga puder ser espalhada por vários provedores, o resultado é ainda melhor, porque é o mesmo que criar “rodovias” virtuais alternativas para chegar ao mesmo lugar.

Há uma empresa especializada nisso cujo nome aparece muito e poucos sabem do que se trata: Akamai. Usando criativamente vários recursos da internet, a Akamai consegue distribuir arquivos por todo o mundo de forma transparente para o usuário. Entre os clientes da Akamai estão empresas como a Apple, a Microsoft e a CNN. Na próxima vez que você vir um endereço com os termos “edgesuite” ou “akamai”, saiba do que se trata: é distribuição de conteúdo no mundo todo para permitir que você faça downloads mais rápidos sem engarrafar o tráfego no local onde o site é realmente hospedado.

Você já viu algum vídeo ficar muito lento no YouTube enquanto outros estão normais? Em vários casos, é devido ao afunilamento da conexão. O YouTube espalha seus vídeos entre diferentes servidores para impedir que todos os locais fiquem sobrecarregados ao mesmo tempo.

Controlando a raiva e semeando a paciência
As mídias sociais na internet aceleraram o processo de disseminação de qualquer coisa – essa é a essência dos chamados “virais” da internet, que se espalham furiosamente entre os usuários. Se todo mundo quer acessar as coisas bacanas ao mesmo tempo, no entanto, o resultado, às vezes, pode não ser muito bom.

Qualquer coisa pode tomar proporções inesperadas rapidamente na web e o problema de escalabilidade afeta os sites, que precisam dar um jeito de atender as demandas, e também internautas, que rapidamente se veem com uma “fama” com a qual não sabem lidar. São problemas bem diferentes, mas ocorrem por um mesmo motivo: muitas pessoas querem a mesma coisa ao mesmo tempo.

Enquanto alguns sites tentam descobrir qual a melhor maneira de lidar com o tráfego absurdo que recebem, aos usuários resta reclamar – com moderação – e ter mais paciência nas horas em que obviamente há razão para a lentidão. Porque se o Brasil perdeu a Copa, o Twitter estar lento é o menor dos problemas.

O fato é que escalabilidade é complicada; na web, ainda mais. Às vezes, pode nem compensar financeiramente ter um sistema preparado para o pico, se esse pico for raro – voltando à copa, por mais que o Brasil se esforce, ele só pode ganhar ou perder uma vez a cada quatro anos. E é para resolver esse problema que a computação nas nuvens é tão interessante. Se der certo, questões de escalabilidade poderão ser resolvidas sob demanda, sem que seja necessário um investimento alto em infraestrutura permanente.

Por enquanto, se o fail whale do Twitter nos diz algo, ainda há muito que caminhar nessa área.

*Altieres Rohr é especialista em segurança de computadores e, nesta coluna, vai responder dúvidas, explicar conceitos e dar dicas e esclarecimentos sobre antivírus, firewalls, crimes virtuais, proteção de dados e outros. Ele criou e edita o Linha Defensiva, site e fórum de segurança que oferece um serviço gratuito de remoção de pragas digitais, entre outras atividades. Na coluna “Segurança para o PC”, o especialista também vai tirar dúvidas deixadas pelos leitores na seção de comentários. Acompanhe também o Twitter da coluna, na página http://twitter.com/g1seguranca.

Por Altieres Rohr - Especial para o G1*
Assine nosso Feed RSS
Últimas Notícias Gerais - Clique Aqui
As últimas | Informática
19/09/2018 | Grupo Renault Nissan terá sistema operacional Android em seus carros
18/09/2018 | A corrida para a criação do computador mais poderoso da história
11/06/2018 | Google tira ovos de emoji de salada para agradar veganos
As mais lidas de Informática
Relação não gerada ainda
As mais lidas no Geral
Relação não gerada ainda
Mauá Virtual
O Guia Virtual da Cidade

Todos os direitos reservados - 2024 - Desde 2003 à 7690 dias no ar.