Atualizando o Ubuntu para o Dapper (6.06)

Pois é… decidi atualizar meu Ubuntu da versão breezy (5.10) para o Dapper (6.06). Tentei como sempre pela forma normal: pegar o CD da última release, iniciar a máquina com ele e efetuar a atualização. Mas infelizmente não deu… algum problema na minha máquina fazia com que o Ubuntu travasse no momento do boot. Ai, por acaso fui atualizar alguns pacotes e me deparei com um mensagem na parte superior da tela de atualização: “New distribution release ’6.06 LTS’ is available” e do lado um botão “atualizar”. Pressionei o botão e voi-a-lá! após algumas confirmações meu Ubuntu já tinha virado dapper….

Atualiza??§??£o do ubuntu

Para abrir o Gerenciador de atualizações, você pode ir pelo menu: “Sistema -> Administração -> Gerenciador de Atualizações” ou no terminal, executar o comando:

$ sudo "update-manager -d"

?? só isso… claro atualizar via web implica em baixar todos os pacotes da internet… algo em torno de 640MB, mas vale a pena ;)

Dig, consultando DNS

Para quem não conhece, o Dig (Domain Information Groper) é um utilitário para consultas a DNS. Ele é normalmente utilizado para identificar problemas de DNS por ser uma ferramenta flexivel, fácil de utilizar e permitir um retorno das pesquisas de fácil compreensão.

o comando básico é:

# dig @servidor nome tipo

onde:

  • servidor: é o endereço IP ou nome do servidor smtp que será consultado;
  • nome: é o nome domínio que estamos consultando;
  • tipo: é o tipo de consulta. Pode ser MX (serviço de e-mail), A (endereço), ANY (todas as informações), etc. Se não preenchido o tipo padrão é A.

Existem várias opções de consulta, a que acho mais interessante é a +trace. Quando ela é utilizada, a saída apresenta todas as respostas desde os rootservers, incluindo qual deles respondeu. Um exemplo:

# dig @dns1.univali.br www.inf.ufsc.br A +trace

Qualquer outra informação: man dig ;)

Teste de carga utilizando Shell Script

A algumas semanas atrás, fiquei responsável por realizar testes de carga em uma sistema web da Univali que foi desenvolvido para o processo de Avaliação Institucional, no qual todos os alunos e professores devem preencher um questionário avaliando as disciplinas, os professores, os coordenadores de curso… ou seja, a universidade como um todo.

Fiquei com esta tarefa, pois a alguns anos também sou responsável pelo teste de carga da aplicação responsável pela processo de matrícula via Internet.

A tarefa é “simples”: consiste em monitorar o uso de recursos de todos os servidores envolvidos no processo (servidores web, banco de dados, etc) e aplicar uma carga que deverá simular um número n de usuários efetuando um determinado processo (preenchendo um formulário, navegando em um site, etc) em um período de tempo. O objetivo é dizer quantos usuários simultâneos poderão estar utilizando o sistema com um tempo de resposta aceitável e de forma que os recursos de hardware/software não sejam consumidos completamente.

Esse “número mágico” é utilizado para definirmos se um processo será dividido por grupos de pessoas em vários dias ou se será necessário a adição de mais servidores no farm.

Bem, por que estou escrevendo isso? porque até o início do ano eu costumava utilizar um software da Microsoft para efetuar os testes de carga chamado Web Application Stress Tool. Infelizmente para algumas aplicações web eu não conseguia efetuar o teste corretamente, simulando um usuário real no sistema. Dessa vez tentei evoluir um pouco e decidi fazer a aplicação em Shell Script! :)

A experiência foi muito boa, confesso que consegui obter um resultado satisfatório e ter uma flexibilidade imensa para criar o programa. Abaixo um descrição de um dos teste executados com 500 usuários simultâneos:

Foram utilizados 500 usuários que efetuaram o processo de login na Intranet no intervalo de 5 minutos. Estava sendo disparado o acesso de exatamente 5 usuários a cada 3 segundos. Após efetuar o login, o ???usuário??? passava para a tela onde encontram-se os formulários de avaliação institucional e em seguida escolhia o primeiro formulário de avaliação referente a disciplina. Neste ponto foi adicionado um intervalo que varia de 2 a 3 minutos referente ao preenchimento do formulário. Após a conclusão o mesmo era salvo e o usuário escolhia um novo formulário. Este processo se repetiu no total de 8 vezes, sendo 5 para formulários de disciplinas cursadas e 3 referentes ao curso (Curso, coordenador e auto-avaliação). Ao final o usuário efetuava o processo de Logout da Intranet.

Para o teste de cargas utilizei principalmente o curl auxiliado por diversas outras ferramentas encontradas no shell padrão de qualquer distro. Para o monitoramento também foram criados scripts que coletavam informações como uso de CPU, memória, conexões simultâneas, processos do apache em execução e outras informações relevantes.
Acho que é isso… gostaria apenas de compartilhar mais uma idéia que podê ser resolvida com shell scripts. Quem sabe futuramente transformo esse meu conhecimento em uma aplicação mais flexivel e fácil de configurar que suporte “farms” de clientes, geração de gráficos automaticamente (pois usei o Excel pra fazer isso ;) e mais o que vier na cabeça.