adm servidor linux

Upload: publio-cavalcante

Post on 09-Apr-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Adm Servidor Linux

    1/46

    1

    1

    Agenda:

    SDS....

    Aproveitem o perodo e compartilhemos os conhecimentos !

    2

  • 8/8/2019 Adm Servidor Linux

    2/46

    2

    3

    4

    PERFORMANCE

    MONITORAO

    DESEMPENHO

  • 8/8/2019 Adm Servidor Linux

    3/46

    3

    5

    6

    Performance ou Desempenho: Informaes do estado dosistema e identificao de bottlenecks [gargalos], atravs demtricase cruzamentos de mtricas.

    Monitoramento: Tarefa constante e que permite acompanhar ofuncionamento do sistema aps ajustes{ Proatividade, padresde comportamento, referncias de mtricas}

    Leitura e interpretao de Logs

    Indicadores:Informaes do Kernel, Informaes de Rede,CPU, Memria, Indicadores de I/O.

  • 8/8/2019 Adm Servidor Linux

    4/46

    4

    7

    Performance, Monitoramento, Indicadores, e....QUE VANTAGEM TEMOS ?!?!??

    Quando necessrio realize uma mudana por vez; Documente cada etapa; Efetue as alteraes nas configuraes; Monitore / observe o sistema; Documente o resultado das observaes realizadas.

    Repita tudo de novo se necessrio.....

    8

  • 8/8/2019 Adm Servidor Linux

    5/46

  • 8/8/2019 Adm Servidor Linux

    6/46

    6

    1

    1

    Quandoiniciado..

    Quando emexecuo..

    Time sliceesgotado...

    Scheduler do kerneldecide pelaexecuo

    (prioridade eescalonamento)..

    Requisiesde I/O...

    Finalizaoou interrupo

    forada...

    Ciclo de Vida de um Processo

    12

    Estado de Processos do Linux

    Task_RunningProcesso em execuo ou pronto para ser executado

    Task_StoppedProcesso em pausa (depurando programas, por exemplo)

    Task_InterruptibleProcesso em espera de eventos externos (leitura de teclado)

    Task_UninterruptibleProcesso relacionado rotinas de I/O

    Task_ZombieProcesso que no tem sua morte tratada pelo Processo Pai

  • 8/8/2019 Adm Servidor Linux

    7/46

    7

    1

    3 Classificao dos Processos:

    FOREGROUND (PRIMEIRO PLANO): Iniciados pelo terminal de comandos, interagem com os usurios, prendem o prompt, geralmente com sada no monitor.

    BACKGROUND (SEGUNDO PLANO): Iniciados pelo terminal de comandos, no interagem com osusurios, no prendem o prompt e sem sada via monitor.

    Job Control:

    Capacidade de suspender a execuo de um processo e reomar sua execuo posteriormente.

    14 02 Classes de Processos:

    RECURSO (relacionado a utilizao de um recurso) : CPU-bound I/O-bound

    PRIORIDADE (relacionado como o Kernel determinar a prioridade de execuo) : Normal Tempo Real { Hard, Soft

    CPU-bound x I/O-bound: Escalonador de Processos determina quem, quando e por quanto tempo assumir os recursos daCPU;

    O tempo que o processo passa no estado sleep determina se ele ser tratado como CPU ou I/O- bound.

  • 8/8/2019 Adm Servidor Linux

    8/46

    8

    1

    5 Prioridade de Execuo:

    Normal : Processos executados pelo usurio;

    Tempo Real : Precisam ser executados primeiro do que os processos normais (Vitais ao Sistema !!)

    Prioridade de Execuo Tempo Real:

    HARD : Existe garantia de execuo;

    Tempo Real : Existe promessa de execuo imediata (mas no garantia total)

    16 Prioridade:

    Variando de -19 a 20

    Simulando um processo:

    Programa:

    int main(){

    While(1);}

    #gcc processo.c o processo#./processo &

  • 8/8/2019 Adm Servidor Linux

    9/46

    9

    1

    7 Prioridade: Variando de -19 a 20

    Criando ou mudando prioridade:

    Comando Nice :

    #nice n -5 ./processo &

    Comando Renice :#renice -10 13184

    18 Prioridade de Execuo:

    ESTTICA : Valor calculado quando o processo carregado para a Memria (variam de 100 a 139)

    PRI_ESTTICA = 120 + nice

    DINMICA : A Verdadeira Prioridade

    PRI_DINMICA = mximo(100, minmo(PRI_ESTATICA bnus + 5, 139))

    Onde :

    Bnus varia de 0 10 e Processo CPU-bound = 0 e Processos I/O-bound = 0 - 10

  • 8/8/2019 Adm Servidor Linux

    10/46

    10

    1

    9 Prioridade de Execuo:Comando Nice :

    #nice n -5 ./processo &

    PRI_ESTTICA = 120 + 5 = 125

    PRI_DINMICA = mximo(100, mnimo(120 - 0 + 5, 139))= mximo(100, mnimo(125,139))= mximo(100,125)= 125

    20

    Informaes dos Processos:

    USER - Nome do usurio dono do processo.UID - Nmero de identificao do usurio dono do processo.PID - Nmero de identificao do processo.PPID - Nmero de identificao do processo pai de cada tarefa.PRI - Nmero de prioridade da tarefa. (Nmeros altos so prioridades baixas). NI - Valor preciso da prioridade da tarefa.%CPU - O consumo de processamento do processo.%MEM - O consumo de memria do processo.SIZE - Tamanho do cdigo da tarefa em kilobytes.RSS - Soma total da memria fsica usada pelo processo, em kilobytes.WCHAN - Endereo ou nome da funo do kernel da tarefa que est atualmente suspensa.STAT - Estado do processo: S - Suspenso, R - em Execuo, T - Interrompido, Z - Terminado, etc.TTY - Terminal onde so executados os processos.TIME - Tempo total da CPU usado pelo processo desde que foi iniciado.COMMAND - Nome do comando do processo.

  • 8/8/2019 Adm Servidor Linux

    11/46

    11

    2

    1Gerenciando Processos:

    & : & => executa um processo em background

    bg: bg => coloca um processo em background

    fg: fg => coloca um processo em foreground

    jobs: jobs => Lista os jobs em execuo pelo shell

    ps : ps => exibir infrmaes de processos ativos

    pstree: pstree => informaes de processos ativos em formato de rvore

    pidof : pidof => retorna o PID do processo

    top: top => consumo de recursos por processo

    free : free => Consumo de memria

    vmstat: vmstat => Utilizao da Memria Virtual

    22

    Gerenciando Processos:

    kill : kill => finaliza um processo pelo PID

    killall: killall => finaliza um processo pelo nome

    nohup: nohup => continua a execuo do comando mesmo com a saida do usurio do sistema

    nice : nice => Executar processo com prioridade diferente da default

    renice: renice => modifica a prioridade de um processo em execuo

  • 8/8/2019 Adm Servidor Linux

    12/46

    12

    2

    3 Comunicando-se com o Kernel:

    Utilizando-se o procfs ou /proc.

    O /proc um filesystem virtual e residente em memria (diferentemente do conceito defilesystem tradicional).

    O /proc dividido em : Subdiretrios de Processos (nmeros), Arquivos Informativos eParmetros Ajustveis (subdiretrio sys).

    24

    Comunicando-se com o Kernel:

  • 8/8/2019 Adm Servidor Linux

    13/46

    13

    2

    5 Comunicando-se com o Kernel:

    26 Comunicando-se com o Kernel:

  • 8/8/2019 Adm Servidor Linux

    14/46

    14

    2

    7 Comunicando-se com o Kernel:

    28

    0,10,20,30,40,50 * * * * /root/./monitora.sh

    #!/bin/bashecho "" >> monitor echo "Data:" >> monitor date >> monitor echo "-----------------------------" >> monitor echo "### IO status ###" >> monitor iostat >> monitor echo "#################" >>monitor echo ""echo ""echo "### TOP ###" >> monitor top -b -n 1 >> monitor echo ""echo"##########################################################################" >>monitor echo ""

    monitora.shmonitora.sh ::croncron ::

    ExemploExemplo Pr Pr ticotico::

  • 8/8/2019 Adm Servidor Linux

    15/46

    15

    2

    9 monitor:monitor:

    30 Comunicando-se com o Kernel: Processos

  • 8/8/2019 Adm Servidor Linux

    16/46

    16

    3

    1 Comunicando-se com o Kernel: Parmetros Alterveis

    32 Comunicando-se com o Kernel: Parmetros Alterveis

  • 8/8/2019 Adm Servidor Linux

    17/46

    17

    3

    3 Consumo de CPU:MTRICAS:

    Percentual de utilizao da CPU; Load Average (Escalonamento e gerenciamento de processos)

    PARMETROS:

    %US = Processos de Usurios;%SY = Processos de Sistema;%NI = tempo gasto como processos de baixa prioridade;%ID = tempo ocioso (idle);%WA = tempo aguardando finalizao de operaes de I/O;%HI = tratamento de IRQ Hard;%SI = tratamento de IRQ Soft.

    34

    # ping -s 65507 -i 0.00000001 localhost

    Hipteses:

    Ataque DOS ou DDOS ? Problemas nos servios de Rede ?

    Consumo de CPU:

  • 8/8/2019 Adm Servidor Linux

    18/46

    18

    3

    5 Consumo de CPU:MTRICAS Load Average:

    a mdia da soma dos processos que esto executando (ou na fila para execuo) + tarefas aguardandofinalizao de operaes de I/O

    Resume a carga qual o sistema est submetido;

    Pode ser obtida pelos comandos top, vmstat e uptime

    Incremento do seu valor podem indicar aumento de processos que precisam de CPU ou de I/O

    Arquivo /proc/loadavg:

    Os 3 primeiros nmeros = So o load average dos ltims 1, 5 e 15 minutos O 4 nmero : antes da barra : processos ou threads em Task_running

    depois da barra : processos ou threads em outros estados

    O 5 nmero : PID do ltimo processo criado

    36 Consumo de MEMRIA:

    O SO tem como uma de suas atribuies primordiais zelar, pela boa utilizao e compartilhamento daMemris do sistema.

    REGISTRADORES

    CACHE

    MEM. PRINCIPAL

    MEM. SECUNDRIA

    Capacidade deArmazenamentoVelocidade deAcesso

    Virtual Memory (VM) = Espao alocado na memria secundria + memria fsica (RAM)

  • 8/8/2019 Adm Servidor Linux

    19/46

    19

    3

    7 Consumo de MEMRIA: No Linux a Memria dividida em Zonas:

    Zona DMA

    Zona Normal

    (lowmem)

    estruturas do Kernel

    ZonaHighmem

    Aplicaes deusurios,

    Processos eThreads

    aplicativos deusurios,tarefas doSistema

    0 MB

    16 MB

    896 MB

    1 GB

    4 GB

    Antigos dispositivos (ISA ..)

    38 Consumo de MEMRIA:

  • 8/8/2019 Adm Servidor Linux

    20/46

    20

    3

    9

    Consumo de MEMRIA:

    40 Alocao de MEMRIA:

    Arquivos :

    vm.overcommit_memory (/proc/sys/vm) =

    Com valor 0 : SO estima se existe memria disponvel;Com valor 1 : Todas as solicitaes sero sempre atendidas e o Kernel assumeque h memria;

    Com valor 2 : Todas as solicitaes so atendidas desde que no se ultrapasseo valor estimado no arquivoovercommit_ratio

    Clculo do valor estimado :

    valor = swap + (overcommit_ratio/100) * memria fsica

  • 8/8/2019 Adm Servidor Linux

    21/46

    21

    4

    1 OOM (Out Of Memory)Arquivos :

    oom_socre (/proc/) =

    Quanto > esse valor > ser a chance do processo ser escolhido pelo Kernel para ser interrompido.

    Evitando a morte de processo em OOM :

    /proc//oom_adj

    Esse arquivo contm um nmero (-17 +15), onde quanto maior o nmero

    maior a chance do processo morrer.O Valor -17 especial e indica que o processo no pode ser killado.

    42 Paginao de MEMRIA:

  • 8/8/2019 Adm Servidor Linux

    22/46

    22

    4

    3 Paginao de MEMRIA:Active: pgina livre ou em uso alocado prlo Kernel pasra ele ou para um processo;

    Inactive: pgina que se encontra na memria secundria por no ter sidoacessada por um determinado tempo.

    Page out : pginas marcadas como sujas (dirty) (inativas)

    Parmetro: /proc/sys/vm/dirty_background_ratio :Permite configurar a frequencia com que as pginas so movimentadas para odisco.

    valor Acesso ao HDvalor nmero de pginas sujas na memria.

    44

    Parmetro: dirty_expire_centisecs :

    Permite configurar o tempo em que uma pgina suja dever ficar na memria principalat ser escolhida para a transferncia para a memria secundria.

    valor writeback (Mas a trasferncia de dados ser mais intensa)

    valor writeback

    Paginao de MEMRIA:

  • 8/8/2019 Adm Servidor Linux

    23/46

    23

    4

    5 Swapping de MEMRIA:

    MasSwappingse refere a movimentao de todo um espao de memria deum determinado processo.

    46

    Gerenciando Filesystems e I/O

    Blocos : est para o FS assim como as pginas esto para a memria

    Inode : armazena as informaes necessrias ao sistema para tratar cadaobjeto (arquivos, diretrios, sockets e pipes)

    ext2 journaling 9jfs)

    ext3nfscifs...

  • 8/8/2019 Adm Servidor Linux

    24/46

  • 8/8/2019 Adm Servidor Linux

    25/46

    25

    4

    9Gerenciando Rede e Servios

    Perguntas Pertinentes:

    Taxa de transferncia suportada ;Valor de latncia (rtt);Volume de dados;Protocolos e servios;Infraestrutura da rede.

    Parmetros Importantes:

    MTU (maximum transfer unit) : tamanho mximo dos pacotes em bytes que podem ser trafegados.

    #ifconfig eth0 mtu Pesquisar !! mtu path discovery

    50

    Gerenciando Rede e Servios

    Parmetros Importantes:

    Velocidade e Modo de Transmisso : Bem definidos evitam a degradao !

    Observar: duplex, link detected, speed, advertised auto-negotiation

  • 8/8/2019 Adm Servidor Linux

    26/46

    26

    5

    1Gerenciando Rede e Servios

    Parmetros Importantes:

    Offloading : recursos que podem ser executados pela NIC e no pela CPU. {Caractersticas das NICs

    52

    Gerenciando Rede e Servios

    Noes de TCP:

    Estabelecendo uma conexo ( three-wayhandshake):

  • 8/8/2019 Adm Servidor Linux

    27/46

  • 8/8/2019 Adm Servidor Linux

    28/46

    28

    5

    5Gerenciando Rede e Servios

    Bandwith Delay Product:

    bdp = 100.000.000 x 50 x 103 { Taxa de transferncia 100 Mbps e RTT de 50 ms

    bdp = (5.000.000 bits/8)/1024

    bdp = 610 KB, ou seja aps a abertura da janela de transmisso serotransmitidos pacotes at o limite de 610 KB.

    net.ipv4.tcp_keepalive_time:

    Altera tempo que o TCP dever aguardar antes de finalizar uma conexo que

    foi aberta, mas ainda no foi fechada pelo n remoto. Default = 02 horas.

    56

    Gerenciando Rede e Servios

    net.ipv4.tcp_tw_reuse:

    Reutiliza os sockets TCP de um mesmo host, aps uma primeira conexo ter sidoencerrada. Aproveitando nmero de portas, por exemplo.

    Ganho de performance em servidores web podem ser conseguidos. Ver RFC1644.

    Ver: /usr/linux/Documentation/networking/ip-sysctl.txt

  • 8/8/2019 Adm Servidor Linux

    29/46

    29

    5

    7

    58

    TOP:#top b n -d

    Ex. #top b n5 d10

    Repete o comando top a cada10minutos por 5 vezes

    TOP:#top b n -d

    Ex. #top b n5 d10

    Repete o comando top a cada10minutos por 5 vezes

  • 8/8/2019 Adm Servidor Linux

    30/46

    30

    5

    9 VMSTAT: Se executado somente uma vez, ele retorna a mdia dos valoresdesde o ltimo reboot (exceto procs, e memria).

    Grupo procs: r = processo em TASK_RUNING; b = processos em TASK_UNINTERRUPTIBLE;

    Grupo memria: swpd, free, buff e cache (expressa em KB);

    Grupo swap: si (swap in) = quantidade de memria enviada para rea de swap (KB/s)

    so (swap out) = quantidade de memria retirada da rea de swapGrupo io: bi / bo = quantidade de operaes realizadas por segundo em blocos (r/w emdisco)Grupo system: in = nmero de interrupes por segundo

    cs = troca de contexto entre processosGrupo cpu: us = consumo por tarefas de usurio (%)

    sy = consumo pelo sistemaid = idle (ocioso)

    60

    VMSTAT: Executado 5 vezes com intervalo de 4 segundos entre asexecues.

    ou...

  • 8/8/2019 Adm Servidor Linux

    31/46

    31

    6

    1

    http://pagesperso-orange.fr/sebastien.godard/

    SYSSTAT: Pacote que contm aplicativos para monitorar (verificar) processador (mpstat), processo (pidstat), i/o (iostat).

    tps : quantidade de transferncias por segundo, Blk_read/s : blocos lidos por segundo...

    62

    http://nmon.sourceforge.net/pmwiki.php

    NMON: Acompanha o sistema em tempo real.

  • 8/8/2019 Adm Servidor Linux

    32/46

    32

    6

    3

    64

    O QUEO QUE NAGIOS?NAGIOS?

    Aplicativo de Monitoramento de Redes

    Distribudo sob a licena GNU/GPL

    Monitoramento de Hosts (Linux / Windows)

    Monitoramento de Servios

    Alarmes em caso de falha

    http://www.nagios.org/

  • 8/8/2019 Adm Servidor Linux

    33/46

    33

    ApresentaApresenta oo NagiosNagios ::

    O Nagios um programa open source demonitorao de hosts, de servios e de rede.

    Ele foi desenvolvido para informar sobre problemasde rede antes dos seus clientes, usurios ou corporepresentativo.

    6

    5

    ApresentaApresenta oo NagiosNagios ::

    Ele foi projetado para rodar em GNU/Linux, mas trabalhamuito bem com outras variantes *NIX.

    O daemon de monitorao faz checagens intermitentesnos hosts e servios que so especificados usandoplugins externos que retornam informaes de estadopara o Nagios.

    66

  • 8/8/2019 Adm Servidor Linux

    34/46

  • 8/8/2019 Adm Servidor Linux

    35/46

    35

    6

    9FuncionamentoFuncionamento dodo NagiosNagios ::

    RequisitosRequisitos ::

    SISTEMA OPERACIONAL - Linux ou BSD e

    um compilador CSOFTWARE BSICO -Nagios CoreApache web server (ou LAMPP)biblioteca gd

    70

  • 8/8/2019 Adm Servidor Linux

    36/46

    36

    Estrutura deEstrutura de DiretDiretriosrios

    ./bin - Ncleo do programa (nagios)

    ./etc - Arquivos de configurao

    ./sbin - CGIs

    ./share - HTMLs e Documentao

    ./var - Logs e Comando Externo

    7

    1

    72

    PrincipaisPrincipais ArquivosArquivos dede ConfiguraConfigura oo

  • 8/8/2019 Adm Servidor Linux

    37/46

    37

    7

    3 PrincipaisPrincipais ArquivosArquivos dede ConfiguraConfigura oo

    74

    PrincipaisPrincipais ArquivosArquivos dede ConfiguraConfigura oo

  • 8/8/2019 Adm Servidor Linux

    38/46

    38

    7

    5 PrincipaisPrincipais ArquivosArquivos dede ConfiguraConfigura oo

    76

    PrincipaisPrincipais ArquivosArquivos dede ConfiguraConfigura oo

  • 8/8/2019 Adm Servidor Linux

    39/46

  • 8/8/2019 Adm Servidor Linux

    40/46

    40

    7

    9 # 'check_ftp' command definitiondefine command{

    command_name check_ftpcommand_line$USER1$/check_ftp -H

    $HOSTADDRESS$}

    # 'check_pop' command definitiondefine command{

    command_name check_popcommand_line$USER1$/check_pop -H

    $HOSTADDRESS$}

    # 'check_smtp' command definitiondefine command{

    command_name check_smtpcommand_line$USER1$/check_smtp -H$HOSTADDRESS$ -t 20}

    # definicao de comando 'check_imap'define command{

    command_name check_imapcommand_line$USER1$/check_imap -H

    $HOSTADDRESS$ -p 143 -t 20}

    CheckcommandsCheckcommands ::

    80

    ExemploExemplo Pr Pr ticotico::

  • 8/8/2019 Adm Servidor Linux

    41/46

    41

    8

    1 ExemploExemplo Pr Pr ticotico::

    82

    ExemploExemplo Pr Pr ticotico::

  • 8/8/2019 Adm Servidor Linux

    42/46

    42

    8

    3 ExemploExemplo Pr Pr ticotico::

    84

    ExemploExemplo Pr Pr ticotico::

  • 8/8/2019 Adm Servidor Linux

    43/46

    43

    8

    5 ExemploExemplo Pr Pr ticotico::

    86

    O QUEO QUE MRTG?MRTG?

    Multi Router Traffic Grapher;Ferramenta para monitorar o trfego da rede (statusdos links);Gerao de pginas HTML com grficos querepresentam o trfego;Baseado em Perl e C;Verses Windows NT e Unix.

    http://oss.oetiker.ch/mrtg/

  • 8/8/2019 Adm Servidor Linux

    44/46

    44

    8

    7 http://mmonit.com/monit/

    http://ganglia.info/

    http://munin.projects.linpro.no/

    MaisMais tools....:tools....:

    88 http://www.cacti.net/

    http://www.zabbix.com/

    http://www.observernms.org/

  • 8/8/2019 Adm Servidor Linux

    45/46

    45

    8

    9

    http://www.zenoss.com/

    http://collectd.org/

    http://argus.tcp4me.com/

    90

    Benchmarking:Benchmarking:

    http://www.bitmover.com/lmbench/

    Lmbench: Resultados agrupados por categorias (latncia deRAM, operaes por processos, trocas de contexto,largura de banda)

    Iozone: til quando o foco so as rotinas de I/O.http://www.iozone.org/

  • 8/8/2019 Adm Servidor Linux

    46/46

    9

    1

    Benchmarking:Benchmarking:

    92