adm servidor linux
Post on 09-Apr-2018
250 Views
Preview:
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
top related