Resultados 1 a 2 de 2
  1. #1
    Guru Junior
    Data de Ingresso
    Nov 2010
    Localização
    Porto Alegre/RS
    Posts
    231

    Lightbulb Como medir LOAD ALTO

    Como ver LOAD ALTO: loga no ssh e digita

    uptime
    Vai retornar algo tipo isso:
    20:08:17 up 137 days, 7:51, 2 users, load average: 2.50, 2.48, 2.26

    Load average é o "load".

    Alto vai de cada um... pra mim alto é quando o primeiro número passa de 3. O segundo número é a média do load average dos últimos 5 minutos e o terceiro número é a média do load average dos últimos 15 minutos.

    Em termos mais técnicos, o "2.5" significa que existem 2.5 processos na fila para serem processados pelo processador. Dependendo do clock, isso é imperceptível. Dependendo da aplicação, um load de 10 também não pode ser percebido, mas se tu entrar no SSH, vai sentir a lentidão em qualquer comando, principalmente de disco.

    O load é a combinação de MEMORIA + CPU + IO, entao se ele tiver alto, é algo relacionado com um dos três componentes.

    MEMORIA: loga no ssh e digita

    free
    Vai retornar algo tipo isso

    total used free shared buffers cached
    Mem: 12459256 12028904 430352 0 449556 5867936
    -/+ buffers/cache: 5711412 6747844
    Swap: 6144852 630284 5514568

    Significa que:
    1) a maquina tem 12459256 (12 Gb) de RAM
    2) 430352 (430 Mb) nem foram tocados
    3) 5867936 (5 Gb) estao sendo usados para cache (de IO principalmente)
    4) 6747844 (6 Gb) estão LIVRES para uso.

    Livres? Sim, se o sistema operacional precisar, ele vai baixar o "cached" e disponibilizar para a aplicação.

    E por último, essa maquina tem um espaço em disco disponível para SWAP de 6144852 (6 Gb) e está sendo usado 630284 (600 Mb) ... não é bom, mas acontece. Algumas aplicações com baixo uso de memoria acabam sendo relegadas para o Swap. Uma das maneiras de ajudar a máquina a não usar o SWAP (que deixa lento, mas é necessário, pois sem ele a máquina poderá travar na ausência de memoria disponivel), execute este comando sem qualquer risco:

    echo 20 > /proc/sys/vm/swappiness
    Ele vai dizer para o kernel usar swap em uma proporção de necessidade de 20% ao invés do padrão que se não me engano é 80.

    CPU: loga no ssh e digita

    ps auxw
    OU

    top
    Ele vai te listar os processos e com isso, na coluna CPU, vais poder ver quem usa mais. Em maquinas multiprocessadas é comum um processo usar mais de 100% de CPU (pois ele vai usar mais de uma CPU, por que a máquina tem mais de uma CPU, lembra?)

    No top, você pode verificar também o estado geral do processamento do servidor, por exemplo:

    Cpu0 : 52.8%us, 4.0%sy, 0.0%ni, 40.6%id, 0.0%wa, 0.3%hi, 2.3%si, 0.0%st
    Cpu1 : 19.8%us, 1.7%sy, 0.0%ni, 78.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

    Cpu0: 52% em uso por aplicações (Apache, ftp, email, etc), 4% por sistema (kernel, placa de rede), 40% idle (disponivel, excelente), 0.0% wa = IO (excelente, nenhuma aplicação aguardando o disco responder)

    Cpu1: 19% em uso por aplicações (Apache, ftp, email, etc), 1% por sistema (kernel, placa de rede), 78% idle (disponivel, excelente), 0.0% wa = IO (excelente, nenhuma aplicação aguardando o disco responder)

    Na maquina que peguei como exemplo, são 8 cores e a media do "used" está em 50%, o que é bom para uma maquina "fechada" (nao entra mais nada nela).

    No ps, por exemplo:

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    usuarioapache 21001 1.5 2.1 801608 262464 ? S 14:05 5:42 /usr/local/apacheseguro/bin/httpd -DSSL
    usuarioapache 21002 1.1 1.8 784436 230284 ? S 14:05 4:21 /usr/local/apacheseguro/bin/httpd -DSSL
    usuarioapache 21003 1.2 2.0 809684 256460 ? S 14:05 4:30 /usr/local/apacheseguro/bin/httpd -DSSL
    usuarioapache 21004 1.3 1.9 801300 245644 ? S 14:05 5:11 /usr/local/apacheseguro/bin/httpd -DSSL
    usuarioapache 21005 1.0 1.9 802820 241592 ? S 14:05 3:59 /usr/local/apacheseguro/bin/httpd -DSSL
    usuarioapache 21006 1.1 1.9 804356 247000 ? S 14:05 4:11 /usr/local/apacheseguro/bin/httpd -DSSL

    Significa que temos o usuario usuarioapache rodando o processo httpd (servidor web apache), com seus respectivos PIDs, respectivo uso de CPU e MEMORIA, a hora que o processo foi inicializado (pode ter sido ontem ou no ano passado tambem) e o tanto de memoria ram que o processo está usando (RSS), ou memoria residente. No caso citado, cada processo do apache está usando 240 Mb de memoria em media.

    IO

    No centos tem um pacote bem legal chamado sysstat, (yum install sysstat), que dá o iostat

    No iostat tu pode tirar um relatorio da situação do HD, por exemplo

    /usr/bin/iostat -d sda -x 15 -t
    Vai informar a cada 15 segundo o status de IO do disco

    Exemplo:
    Device rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
    Time: 20:20:09 => sda 0.00 65.89 0.13 23.97 2.14 718.83 29.92 0.20 8.47 1.03 2.49
    Time: 20:20:24 => sda 0.00 18.25 0.00 17.85 0.00 288.87 16.18 0.36 20.32 0.82 1.47
    Time: 20:20:39 => sda 0.00 18.48 0.00 12.21 0.00 245.50 20.11 0.15 12.16 0.71 0.87
    Time: 20:20:54 => sda 0.00 15.60 0.53 18.67 4.27 274.13 14.50 1.81 94.14 2.16 4.15
    Time: 20:21:09 => sda 0.00 75.12 0.20 19.61 2.13 757.84 38.36 0.06 3.12 0.76 1.51
    Time: 20:21:24 => sda 0.00 27.07 0.80 24.00 46.93 408.53 18.37 1.84 74.00 2.02 5.01

    Este HD está com uso medio de 3% de IO, existem alguns picos de processos aguardando a gravação (await), mas esse dado não é muito confiável segundo o desenvolvedor do software, ele dá o numero de IOPs por segundo (r/s e w/s), que em um hd SAS de 15k nao deve passar de 200 a 300 (nao sei quanto a SATA).

    O dado que eu mais levo em consideração é a porcentagem de uso (o %util)... esse é sempre certo. Se a maquina está com isso em 100% é certo que o negocio nao vai andar rapido até baixar o IO. E aí tem que sair atrás da aplicação que está usando o disco.

    O iostat funciona bem quando voce deixa ele rodando em "loop", ou seja, com -t, do contrario ele dá informações não muito verídicas, pois nao tem como medir "o antes" para tirar o uso atual de IO
    Última edição por JulianoP; 02-06-2011 às 22:53. Razão: trocar "-x" por "-t" na explicação do loop
    KingHost [ kingho.st ]
    Giga Internet [ giga.com.br ]
    █ Hosting, Datacenter e Operadoras

  2. #2

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •