Certamente!

Paulo Querido. Na Internet desde 1989

22 de setembro de 2004

O Bicudo Problema Informático das Listas de Colocação de Professores

speculare diz com algumas irritação nesta entrada no papel de parede: «Como estudioso de informática posso garantir uma coisa: fazer uma lista ordenada tendo em conta diversos critérios, mesmo considerando 100.000 registos, está ao alcance da computação moderna. Estaria ao alcance da computação de há 10 (ou até 20) anos atrás. [...] Não existe optimização, inteligência artificial, nem necessita de poeira do Sol para funcionar. Só condições e comparações».

Não resisto a dar os meus two cents, até porque acabei de efectuar uma limpeza às bases de dados do weblog.com.pt. Falo do pouco que sei, pessoalmente; qualquer programador (e muito estudante do secundário) tem uma experiência incomparavelmente superior e histórias bem mais sumarentas para contar.

A começar pela quantidade diária de acessos ao servidor do Ministério da Educação onde as listas deviam ser publicadas e acedidas, tão grande que é capaz de subjugar a capacidade da maquinaria adstrita ao serviço, os números que impressionam a Imprensa não impressionam ninguém no meio. São vulgares. Preparar um servidor para aguentar meio milhão de acessos diários (e o do ME teve muito menos) é rotina por aqui. Os problemas de banda, processamento ou rede, estão identificados e as respectivas soluções ao alcance do vulgar cidadão que saiba usar o Google e esteja disposta a perder, digamos, uma hora (um informático avançado na famosa óptica do utilizador perderia dois a três minutos). Suponho que a própria ministra conseguiria, só com o Google como recurso, identificar os problemas e documentar as soluções se se dispusesse a isso. Num dia ou dois, no máximo.

As duas bases de dados do weblog.com.pt têm cada uma 19 tabelas. 38 no total. Apaguei há pouco mais de 14.000 registos nas limpezas. Somam neste intante 620.200 registos uma e 160.268 a segunda. 378.9 MB a primeira, 73.0 MB a segunda. Totais: 780.468 registos e 452,9 MB. As tabelas contém todos os posts, comentários, templates, pings, informação sobre autores e blogues, e ainda todo o registo de actividade, bem como dados do Blogómetro e do Technorati.

Nas últimas 3 horas, 39 minutos e 40 segundos o motor das bases de dados (MySQL, open source, gratuito, eficaz) chupou com 725.333 queries (“perguntas” a que deu “respostas”), o que dá 198.118 por hora, 3.301 por minuto, 55,03 por segundo.

Deixando o motor dinâmico, vamos ao servidor de páginas (Apache, open source, gratuito, eficaz). Em Setembro teve uma média diária de 639.376 hits servindo 471.755 ficheiros de 171.550 páginas por dia a 40.874 visitantes. Isto a média em cada 24 horas. Nos 22 dias já contabilizados no mês os 858.361 visitantes diferentes leram 3,6 milhões de páginas e receberam 9,9 milhões de ficheiros num total de 473.113.879 KB de tráfego.

Está excluído do número o tráfego gerado pelo correio (as notificações dos blogues, formulários, etc pois o e-mail assenta noutra máquina que não esta).

Em funções desde Março, o actual servidor do weblog.com.pt ainda não foi vítima de ataques de segurança. (O anterior servidor foi hackado uma vez, em Agosto do ano passado.)

A máquina? Um modestíssimo Intel(R) Pentium(R) 4 com o CPU a 2.66GHz, memória RAM de não menos modesto 1 GB e disco IDE de 80 GB. A precisar de reforma até final deste ano pois começa a dar sinais de fraqueza (leia-se: mais de cinco segundos a responder a exaustivas pesquisas aos 445.000 registos relativos a entradas e comentários dos + ou -1.000 blogues da casa) nos picos de utilização. Calculo que esteja a 80% da sua capacidade nos períodos de ponta, ou picos.

Escusado será dizer que, à excepção do Movable Type, todo o software que sustenta o weblog.com.pt foi escrito por um candidato a amador da programação (eu próprio) com ferramentas open source, gratuitas e eficazes como Perl e PHP.

Não estou a sugerir, maldito seja eu!, que a maquinaria do Ministério da Educação seja obrigada a correr em cima de ferramentas deste tipo, nem que estas são melhores que outras. Ná. Admito até, embora gostasse de ver para realmente crer, que os problemas de introdução, selecção e pesquisa dos registos de 100.000 professores seja um pouco mais complexo do que os meus escassos 1.000 blogues com menos de um milhão de registos.

O ponto é: se um candidato a aprendiz de técnico de informática como eu, que tenho menos de quatro anos de Linux, Perl e PHP, foi capaz de — em regime de part-time — fazer esta omoleta e de dar conta do recado durante 15 meses (o serviço esteve em baixo nesse período menos de 72 horas, ou 3 dias, somando o total de tempos downtime, parte deles devidos à minha inexperiência), como é possível que o ME, com os seus infindáveis recursos, não consiga ordenar uma lista de colocação de professores?

Para não mencionar os milhões distribuídos pelas empresas profissionais do software, recordo que entre os recursos do ME estão centenas de professores e alunos universitários com bagagem e experiência em queries de base de dados e coisas bem mais difíceis e complexas do que ordenar e tornar pesquisável uma merda duma lista com 100.000 ou um milhão de registos, numa pôrra duma maquineta capaz de levar com 250.000 consultas em 24 horas (meras 5 a 6 vezes mais que o weblog.com.pt).

[Às vezes pergunto-me: seria possível o weblog.com.pt correr em cima de software proprietário? Quantas máquinas seriam necessárias só para vomitar as páginas? Quanto gastaria em licenças? Quantos técnicos programadores tinham de dar ao dedo no rato? Sei que tenho alguns leitores capazes de fazer as contas. A caixa de comentários é toda vossa...]