sexta-feira, 11 de julho de 2008

Verificando problemas no hardware

load average: 0.00, 0.00, 0.00

Como você pode obter esta informação?

Para descobir qual o load da máquina, execute o comando uptime. Este irá lhe mostrar a hora corrente quanto tempo a máquina está ligada, quantos usuários estão logados e o load da máquina.

O que isso significa?

Este número é a média de processos bloqueante na fila de execução durante um certo tempo.

Períodos de tempo:

load average: 1min, 5min, 15min

O que é um processo bloqueante?

Um processo bloqueante é um processo que está esperando por alguma coisa para continuar. Normalmente o processo pode estar esperando por:

* CPU (processador)
* Disk I/O (entrada e saída de disco)
* Network I/O (entrada e saída de rede)

O que um load average muito alto significa?

Um load muito alto pode significar que sua máquina está sub-dimensionada para o trabalho que ela está fazendo (por exemplo um banco de dados), ou que algum dispositivo está com problemas e apresentando falhas (por exemplo um disco externo montado no seu sistema de arquivos). Eu pessoalmente tive problemas com discos que apresentaram erros de leitura.

É bom saber que um valor de load, por exemplo 12.0 pode ser tranquilo para um servidor bem robusto, e um load de 2.0 pode ser intragável para aquele notebook celeron que seu pai usa para jogar paciência. Esses valores vão variar muito de acordo com a arquitetura da máquina.

Como diagnosticar um load average muito alto?

Normalmente uma máquina com um load muito alto fica muito lenta e ás vezes nem responde. Mas como você pode saber o que está causando este comportamento?

Vamos começar com o mais simples, o sistema operacional está esperando por CPU?

Execute o top:
top

Veja os números acima, dentro do círculo vermelho. Basicamente estes são a representação da porcentagem do tempo total de CPU gasto processando alguma coisa.
Se estes números ficam constantemente por volta dos 99-100% então existe uma grande possibilidade de que o problema esteja relacionado ao seu processador, provavelmente ele não está dando conta do recado, considere um upgrade.

A próxima coisa a checar é se o processador (CPU) está esperando I/O (ou E/S - entrada e saída). Verifique os números dentro da área do círculo vermelho. Se este número estiver próximo (ou superior) a 80%, então você tem problemas. Isso significa que o seu processador (CPU) está esperando MUITO tempo por respostas dos dispositivos de E/S (I/O). Isso pode significar que você tem um disco com falhas, uma placa de rede com problemas ou uma aplicação está tentando acessar informações numa taxa muito alta para o seu hardware. Isso é comum em sistemas que fazem muito acesso a disco sobre hardwares de baixa qualidade ou não especificos para determinadas aplicações, como por exemplo utilizar uma máquina desktop como banco de dados, num cenário de uso intenso.

Para descobrir o que está causando este load muito alto, rode o comando (como root):

ps aux

Este irá mostrar todos os processos do seu sistema, e seus respectivos estados.

Verifique a coluna STAT. As flags que você procurar são:

* R - Running (rodando)
* S - Sleeping (dormindo)
* D - Esperando por algo

Procure por processos com a coluna STAT com valor D. A partir desta linha, você pode diagnosticar o problema.

Pouca memória.

Fica atento também as valores de swap utilizados (na saída do comando top, fica logo abaixo do mem que está abaixo do cpu), se o "used" estiver muito alto, pode ser que você necessite de um upgrade de memória. Caso a máquina tenha pouca memória, a memória virtual (partição de swap) vai ser bastante utilizada, o que pode elevar o load da máquina.

Outros diagnósticos.

Para mais diagnósticos você pode utilizar os seguintes programas:

* strace - ferramenta de debugging de chamadas de sistema
* iostat - para verificar a performace/desempenho de discos
* bwmon - para verificar a performance de dispositivos de rede

Baseado em: http://www.andymillar.co.uk/blog/index.php/2006/12/24/geekery/linux-load-average-explained/

quarta-feira, 9 de julho de 2008

PUX linux para programadores

É com orgulho que venho anunciar (se é que alguém vai ler isso :-) o inicio do projeto Pux.
Pux é uma distribuição linux feita pela PUCMINAS com o objetivo de atender aos programadores dos cursos relacionados a computação, e será instalado nos laboratórios da PUC.
Esse projeto não é novo mas agora está sendo ressucitado.
Faço parte da enorme equipe de 3 programadores que está customizando a distribuição. Rsrsss

Nossa equipe:

Cogugas (eu)

Fabio Led (de led zepelin)



Objetivo:

Criar um sistema Linux personalizado pela PUC a ser usado nos laborátorios e em casa para quem assim quiser atendendo aos alunos dos cursos de sistemas de informação e ciencias da computação,
provendo recursos que auxiliem os alunos em tarefas relacionadas a essas áreas do conhecimento.
É importante que seja um sistema leve que rode tanto em máquina modernas como modestas.

Sistema Base:

Um dos objetivos do projeto PUX é a capacidade de rodar com velocidade satisfátoria em máquina de pequeno e médio porte, para tal foi escolhido como base a distribuição linux Xubuntu.
Xubuntu - Ubuntu é o linux mais difundido e amigável da atualidade. Em sua versão Xubuntu possui um Desktop leve e amigavel baseado no gerenciador de janelas XFCE, por sua leveza foi escolhido como base para o sistema PUX em sua versão 8.04


Recursos:

  • IDEs para programação em diversas linguagens
  • Criação de monografias em latex seguindo as normas abnt
  • Diagramas
  • Jogos inteligentes voltados para programadores
  • Editores de Texto, planilhas e apresentações
  • Ferramenta de banco de dados
  • Servidor WEB LAMP
  • Ferramenta para criação de páginas WEB em html visual.
  • Comunicação via rede MSN
  • Navegação WEB com browser Firefox
  • Plugins Java e Flash
  • Suporte a MP3 e outros formatos de música e video
  • Player de Música, e Filmes
  • Suporte a DVD
  • PDF
  • Integração com Active Directory
  • Suporte a Escrita em partições NTFS
  • Curso de Digitação