Curso de Performance and Tuning - Linux

3.435 visualizações

Publicada em

Curso de performance and tuning Linux, abordando amazon, Docker, servidores aplicacionais JAVA

Publicada em: Tecnologia
4 comentários
15 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
3.435
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1.498
Ações
Compartilhamentos
0
Downloads
0
Comentários
4
Gostaram
15
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Curso de Performance and Tuning - Linux

  1. 1. Performance & Tuning – Linux Como melhorar a performance de um ambiente Linux, seja ele físico, virtual ou em cloud* (abordando) Instrutor:  Gustavo  C  Lima  
  2. 2. Pesquisa realizada para realização deste treinamento     •  4  semanas  con*nuas  de  pesquisas   •  6  livros,  focados  em  performance,  resumidos  e  analisados   •  2  cursos  –  1  da  RedHat  e  outro  da  Oracle  analisados   •  273  ar?gos,  focados  em  peformance,  analisdos  e  comentados   •  Mais  de  45  testes  de  performance  em  ambientes  Cloud  e  não   cloud   •  Casos  de  estudos  analisados  de  grandes  empresas  e  sites  de  e-­‐ commerce   •  Primeiro  curso  a  abordar  a  u?lização  Docker     Um resumo do que foi pesquisado e analisado para confecção deste treinamento Tudo  isso  para  um  treinamento  que  será  composto  por  6  aulas,  tendo   cada  aula  3  horas  de  duração,  em  duas  terças,  quartas  e  quintas  –  em               2  semanas,  com  18  horas  no  total.  
  3. 3. Objetivo Este  treinamento  visa  orientar   profissionais  da  área  de  tecnologia  da   informação  a  coletar,  analisar,   implementar  e  testar  diferentes  Cpos   de  dados,  programas  e  informações,   que  juntos,  tornam  um  ambiente  Linux   performáCco.   Performance   Analisar   Implementar   Testar   Coletar   *Metodologia  para   performar  um   ambiente  linux  
  4. 4. Pré-requisitos para este treinamento Ferramentas   Modelos,  distribuições  e  especificações   Ambiente  virtualizado   Download  do  VMware  WorkStaCon  /  fusion(mac)  /  virtual  box   Distribuição  Linux   Download  do  Centos  6  64bits  /  Ubuntu  Server  12.04  64-­‐bits   Acesso  à  internet   Link  igual  ou  superior  a  10mbps   Conhecimentos   Em  Linux,  Redes  Tcp/ip  e  em  inglês,  já  que  teremos  muito  conteúdo  neste  idioma   Experiência   Em  administração  de  servidores  Linux   Equipamento   Computador  com  4GB  de  memória  ram  ou  superior,  sendo  64bits  a  sua  arquitetura   Recomendado   Acesso  a  console  da  aws.amazon.com  ou  digitalocean  –  ambiente  Cloud   Nossa  primeira  aula  consisCrá  em  preprar  e  discuCr  as  melhores  práCcas  de   instalação  e  suporte  de  um  ambiente  Linux,  seja  ele  fisicamente  ou   vitualmente  
  5. 5. Conteúdo e Carga Horária As  melhores  distribuições  Linux  quando  o  assunto  é  performance  (FreeBSD  também  será   abordado)   Gerenciamento  de  Processos,  seus  recursos  e  componentes:   •  LOAD   •  Threads  e  seus  estados   •  Processadores   Sistemas  de  Arquivos  /proc  /sys   Filesystem  –  Ext3  /  Ext4  /  ZFS   Ferramentas/Programas  para  monitoração  dos  seguintes  componentes:   •  CPU   •  FileSystem   •  Memória   •  Rede   Benchmarking  -­‐  Como  analisar  a  performance  do  seu  ambiente,  buscando  gargalos  e   melhorias   Tópicos que serão abordados nas primeiras 9 horas de Treinamento
  6. 6. Conteúdo e Carga Horária   Como  tunar  o  seu  ambiente  para  suportar:   •  E-­‐mail   •  Banco  de  dados   •  Webserver   •  WebCache   Virtualização  &  Cloud  Compu?ng:   •  O  que  muda  quando  um  ambiente  sai  do  mundo  ksico  para  o  virtual  ?   •  Quais  são  os  provedores  de  IaaS  mais  performá?cos,  Amazon  ou  Digital   Ocean  ?   •  Como  dimensionar  o  IOPS  para  o  seu  ambiente   •  SAP,  Microson,  Oracle,  tudo  isso  funciona  e  bem  na  nuvem?   •  Trabalhando  com  Docker   Tópicos que serão abordados nas 9 horas restantes de Treinamento
  7. 7. Introdução Por que coletar, analisar, implementar e testar ? Performance   Analisar   Implementar   Testar   Coletar  
  8. 8. Por que analisamos a performance ? •  Redução  de  tempo  ou  de  recursos     –   encontrando  pontos  a  melhorar  (gargalos),  reconfigurar  ou  tunar   •  Pesquisas  por  arquiteturas  escaláveis     –  ambientes  que  possam  atender,  e  rápido,  as  necessidades  de  nossos  clientes   •  Resolução  de  problemas     –  procurando  e  resolvendo  problemas  quanto  a  gargalos,  como  por  exemplo  a     latência   Mas  para  sua  realização  vc  precisará  estabelecer  esta*scas   básicas  e  primárias,  o  conhecido  baseline   O trabalho de um sysadmin/DevOps nunca acaba quando o assunto é performance
  9. 9. Entendendo o Sistema Operacional •  Procurar  e  resolver  problemas  de  performance  do  Kernel   –  Podemos  ganhar  até  60%  de  performance  graças  a  configurações  adequadas  em  seu  ambiente.   •  /etc/sysctl.conf  &  /etc/security/limits.conf   •  Resolver  bugs  e  desabilitar  recursos  desnecessários   –  Ganhos  de  mais  de  200%  de  performance  graças  a  remoção  ou  resolução  de  possíveis  conflitos,   fora  a  remoção  de  serviços  e  pacotes  desnecessários.   •  Services  &  daemons   •  Análise  da  performance  da  aplicação  do  ponto  de  vista  do  Kernel   –  Melhorando  em  mais  de  100%  a  performance  do  seu  ambiente  graças  a  remoção  de  processos   desnecessários.   •  /etc/sysctl.conf       Precisamos compreender o seu funcionamento e de suas ferramentas
  10. 10. Entendendo Disponibilidade Alta  disponibilidade  e  os  cinco  9’s   Sla’s, performance e disponibilidade – 3 pilares utilizados pela maioria Nível  de  disponibilidade   Tempo  de  queda  por  ano(secs)   99%   315460s  (87.6  horas)   99.9%   31536s  (8.76horas)   99.99%   3153.6s  (52.35minutos)   99.999%   315.36s  (5.15minutos)   Alguns  dos  serviços  de  IaaS,  by  amazon  ou  google,  já  prometem  a   entrega  de  um  sla  com  um  nível  de  disponbilidade  de  99.99999%   hnp://upCme.is/advanced? sla=99.99&dur=24&dur=24&dur=24&dur=24&dur=24&dur=24&dur=24  
  11. 11. Capacity Planning    Ele  auxilia  no  dimensionamento  da  infraestrutura  de  C,   evitando  surpresas  e  dando  previsibilidade  quanto  a  uClização   de  recursos,  de  acordo  com  os  dados  coletados,  as  metas  que  a   empresa  deseja  aCngir  e  quanto  a  saCsfação  do  cliente,  no  que   diz  respeito  a  qualidade  de  um  serviço.     O que é e como funciona?
  12. 12. Capacity Planning Estratégia   Processos, dados que devemos coletar e analisar Escopo   Coleta   Análise   Execução  
  13. 13. Definir  quais  componentes  da  infraestrutura  de  TI  do  cliente  farão  parte  do  relatório  de   capacity  planning,  atentando-­‐se  aos  seguintes  pontos:     •  Modelos  de  equipamentos     •  Velocidades  de  links   •  Throughput  de  equipamentos     •  Localidades   •  Tipos  e  níveis  de  usuários   •  Protocolos   •  AplicaCvos   •  Período  de  coleta   •  Ferramentas  empregadas  para  coleta  e  análise   •  Metodologia  de  análise   Escopo   Estatégia - Escopo
  14. 14. São  as  fases  que  o  técnico  põem  a  mão  na  massa   Estatégia – Coleta / Análise / Execução Análise   Execução  Coleta   Vamos  analisar  um  caso  real,  focando  em  entender  os  passos   para  executar  uma  boa  estratégia  de  Capacity  Planning     MulCplos  /  Americanas.com  /  E-­‐commerce  
  15. 15. Análise requer cuidados A  criação  de  um  servidor  dedicado  para  instalação  de   ferramentas,  como  o  SystemTap,  com  o  objeCvo  de  coletar  e   analisar  a  performance  é  de  extrema  importância   Criação de um outro servidor dedicado para análise   Boa  parte  das  análises  requerem  pacotes  extras  do  kernel,  como   por  exemplo:   •  kernel-­‐debuginfo   •  kernel-­‐debuginfo-­‐common   •  kernel-­‐devel    
  16. 16. Procurando o Gargalo Entendendo o seu ambiente – Análise Drill-Down Brendan    Gregg  Images   Análise     Drill-­‐Down   Browser,  versão  do  JAVA  e  do  sistema  operacional,  anC-­‐ vírus  ou  firewall  implementados,  isso  tudo  conta  na  hora   de  analisar  a  performance  do  seu  ambeinte.  
  17. 17. Procurando o Gargalo Entendendo o seu ambiente – Análise Drill-Down Brendan    Gregg  Image  
  18. 18. Procurando o Gargalo Entendendo o seu servidor – Análise Drill-Down Brendan    Gregg  Image   Quais   ferramentas   uClizamos   para   aexecutar   esta   análise  ?  
  19. 19. Kpi’s que valem para diversas infras Importantes pontos de análise para saber se o seu ambiente está sadio IBM    Cloud  SLAs  and  KPIs;  Reference  
  20. 20. Instalação do CentOS Como  preparar  o  seu  ambiente  Linux  focado   em  performance  ?    
  21. 21. Instalação do CentOS O  Docker  pode  ser  descrito  como  um  container  em  um  navio.  Cada  docker-­‐container  é  um   container  que  pode  conter  um  ou  vários  dos  seguintes  serviços:     –  Um  servidor  web;   –  Um  banco  de  dados;   –  Uma  aplicação.     Como  um  Linux  Container  Engine,  uCliza  Linux  Containers  (lxc)  ao  invés  de  métodos  de   virtualização  tradicionais.  O  lxc  uCliza  o  mesmo  kernel  do  servidor  host,  tornando  tudo  muito   rápido.   Um  container  é  um  processo  isolado  através  de  namespaces  +  chroot.  Por  isso  que  fazer  o   “start”  de  um  container  é  muito  rápido  (é  tão  rápido  quanto  iniciar  um  processo  novo).   O Que é e como funciona um Docker
  22. 22. Instalação do CentOS Preparando a sua infra para receber o Linux Físico  versus  Vitual,  mesmo  uCllizando  Docker     Cloud  –  Amazon*  versus  Digital  Ocean  versus  RackSpace  versus  Google   Cloud     *Amazon  –  HVM  versus  ParavirtualizaCon  -­‐    qual  é  a  melhor  ?   Amazon  trabalha  com  Xen  Server,  sistema  que  provê  dois  Cpos  de   virtualização,  sendo  a  paravirtualização  a  mais  performáCca  por   ser  a  mais  próxima  da  performance  de  um  servidor  }sico     DigitalOcean  uCliza  SSD  em  todas  as  suas  máquinas  virtuais     RackSpace  uCliza  a  mesma  tecnologia  que  a  Amazon  
  23. 23. Instalação do CentOS Montando a arquitetura do seu ambiente •  Qual  é  a  sua  necessidade,  servidor  web  ou  banco  de  dados  ?   •  Vc  pode  arcar  com  a  perda  de  performance  devido  a  virtualização?   •  Qual  é  a  previsão  de  acessos  e  o  que  será  acessado  ?   •  Está  preparado  para  suportar  ataques  DDoS  e  outros  ?   Como  arquitetar  o  seu  ambiente  ?  
  24. 24. Instalação do CentOS Divisão do File system para suportar um servidor Linux Cuidados  que  devemos  tomar:     •  Para  que  servirá  este  ambiente?   •  Ele  suportará  um  tráfego  elevado?   •  Tudo  deverá  ser  logado  ?   •  Qual  sistema  de  arquivos   uClizaremos  ?  
  25. 25. Instalação do CentOS hnp://pkgs.repoforge.org/rpmforge-­‐release/rpmforge-­‐ release-­‐0.5.3-­‐1.el6.rf.x86_64.rpm   •p://rpmfind.net/linux/epel/6/x86_64/epel-­‐release-­‐6-­‐8.noarch.rpm   hnps://www6.atomicorp.com/channels/atomic/centos/6/x86_64/ RPMS/atomic-­‐release-­‐1.0-­‐18.el6.art.noarch.rpm             Repositórios – escolhendo os melhores rpm  –Uhv  <url  do  repositório>   Testados  em  13/02/2014  
  26. 26. Instalação do CentOS •  /etc/sysctl.conf  ***   •  /etc/security/limits.conf   •  /etc/fstab   •  cat  /proc/sys/net/ipv4/tcp_moderate_rcvbuf  (1)   –  Configuração  de  stack  autotuning     hnps://docs.google.com/document/d/ 1sm6Yvwag5_06Xwqqi4WM7iN8L6hCCApZTDb5r-­‐x8LEA   Dicas  de  tuning   Parametrizações e arquivos que ajudam a melhorar a performance Kernel    /  FileSystem  /  Network   Testados  em  13/01/2015  
  27. 27. Instalação do CentOS Camadas e ferramentas para melhoria da performance Brendan    Gregg  Image   Estas  são  as   ferramentas  que   uClizaremos  para   executar  nossa   análise!!!    
  28. 28. Tool   Descrip?on   free   Free  memory  and  swap.  Counts  page  cache  memory  as  free   /proc/meminfo   Memory,  swap  and  file  system  staCsCcs.  Kernel  memory  usage,  staCsCcs  for   conservaCve  memory  allocaCon  policy,  HugeTLB  etc..   pidstat   Per  process/thread  CPU  usage,    context  switch,  memory,  swap,  IO  usage   ps,  pstree   Per  process/thread  CPU  and  Memory  usage   /proc,  /sys  File  system   /proc:  stats  about  process,  threads,  scheduling,  kernel  stacks,  memory  etc..   /sys:  Report  device  specific  stats:  disk,  NIC  etc..   netstat,  iptraf   TCP/IP  staCsCcs  ,  rouCng,  errors,  network  connecCvity,  and  NIC  stats.     iptraf  shows  real  Cme  tcp/ip  network  traffic   nicstat,  ping,  ifconfig   NIC  stats,  network  connecCvity,  netmask,  subnet  etc..   Análise & Coleta – exemplo de ferramentas Todos  os  programas  e  pacotes  aqui  apresentados  foram  instalados  e  testados  em   13/08/2014  
  29. 29. Análise & Coleta – exemplo de ferramentas Qual ferramenta é a mais adequada para a sua análise ? Brendan    Gregg  Image   A  melhor   ferramenta  para   análise  do  seu   ambiente  Linux  não     é  só  aquela  que   provê  uma  penca   de  dados!!!!!  
  30. 30. Análise & Coleta – /proc Os dados relevantes que o /proc nos apresenta /Proc na verdade é uma interface para as estruturas de dados do kernel que oferece informações sobre os processos que estão sendo executados. Os dados são armazenados na memória e não em disco Analise o conteúdo de cada um dos arquivos abaixo: # cat /proc/cpuinfo # cat /proc/meminfo # cat /proc/zoneinfo # cat /proc/mounts
  31. 31. Análise & Coleta – /proc/sys/vm Diretório de armazenamento de parâmetros da memória
  32. 32. Análise & Coleta – Redes Componente chave do nosso ambiente Three-­‐way  handshake,  status   de  conexões,  protocolos  e   ferramentas  como  tcpdump,   collectl,  lsof  e  ss  são  conceitos   e  ferramentas  mais  do  que   necessários  para  o  nosso  dia  a   dia,  quando  falamos  sobre   performance  and  tuning.  
  33. 33. Análise & Coleta – Redes Conexões Máximas por Browsers Um  dos  pontos  que  mais  gera   discussão  entre  designers,   administradores  de  sistemas  e   performance  é  referente  a   quanCdade  de  usuários  e   conexões  estabelecidas  por   eles  em  um  servidor..     Vamos  entender  mais  e  na   prá?ca???   hnp://www.browserscope.org/? category=network  
  34. 34. Análise & Coleta – Redes Status de conexões Tcp/ip e sua análise How Do I Filter Sockets Using TCP States? The syntax is as follows: ## tcp ipv4 ## ss -4 state FILTER-NAME-HERE ## tcp ipv6 ## ss -6 state FILTER-NAME-HERE FILTER-­‐NAME-­‐HERE:     •  established   •  syn-­‐sent  (server)   •  syn-­‐recv  (cliente)   •  fin-­‐wait-­‐1  (problemas  ?)   •  fin-­‐wait-­‐2  (problemas  ?)   •  Cme-­‐wait  (problemas  ?)   •  closed   •  close-­‐wait   •  last-­‐ack   •  listen   •  closing  
  35. 35. Análise & Coleta – Redes Pequena demonstração de como o Varnish é performático Apache  Server   Apache  Server   Varnish   Apache  Server   Varnish   CloudFlare  
  36. 36. Análise & Coleta – Redes E por que o Varnish é tão performático ?
  37. 37. Análise & Coleta – IOPS hnp://eshop.macsales.com/shop/SSD/PCIe/OWC/ Mercury_Accelsior/RAID   É  o  número  de  operações  por  segundo  que  um  disco  individual  consegue  chegar.  Por   exemplo,  um  disco  SAS  de  10K  consegue  em  média  140  IOPS.     Note  que  a  diferença  é  muito  grande,  principalmente  levando  em  conta  os  novos  discos   SSD.     Requer  atenção  em  ambientes  suportados  em  Cloud  
  38. 38. Análise & Coleta – IOPS A  melhor  do  mercado,  atualmente,  conseguem  suportar  mais  9.608  Milhões  de  IOPS   -­‐  hnp://www.fusionio.com/products/iodrive2/     US$  22.900,00  -­‐  3.0  TB   Esse  é  o  SSD  dos  Bancos  de  Dados  de  alta  performance   Vejam  o  site  hnp://www.newegg.com/Product/ProductList.aspx?Submit=ENE&N=   -­‐1&IsNodeId=1&DescripCon=PCI%20Express%20SSD&bop=And&Order=PRICED&PageSize=30  
  39. 39. FileSystem – XFS / EXT3 / EXT4 / BTRFS O  XFS  será  adotado  por  default  na  versão  7.0  do  Red  Hat  Enterprise  EdiCon     Testes  realizados  uClizando  o   PostgreSQL   Testes  realizados  uClizando  simples   gravação  de  arquivos  
  40. 40. FileSystem – XFS / EXT3 / EXT4 / BTRFS •  A  uClização  do  EXT4  é  recomendada  para  ambientes  que  rodem  banco  de  dados,  como   PostgreSQL  e  MySQL   •  A  uClização  do  XFS  é  recomendada  para  ambientes  que  trabalhem  com  virtualização  ou  que   precise  de  direct  I/O,  tudo  por  causa  da  sua  melhor  performance  quanto  ao  suporte  a   grandes  arquivos   •  Mas  como  migrar  o  Cpo  de  parCcionamento  em  um  ambiente  produCvo  ?    
  41. 41. FileSystem – Ganho de perfomance Ø  noexec  -­‐  Do  not  set  execuCon  of  any  binaries  on  this  parCCon  (prevents  execuCon  of  binaries  but   allows  scripts).   Ø  nodev  -­‐  Do  not  allow  character  or  special  devices  on  this  parCCon  (prevents  use  of  device  files  such   as  zero,  sda  etc).   Ø  nosuid  -­‐  Do  not  set  SUID/SGID  access  on  this  parCCon  (prevent  the  setuid  bit).   Ø  noa?me  -­‐    do  no  set  Cme  to  files  and  directories  –  até  30%  de  ganho  de  performance   Como aumentar a performance do seu ambiente em 30% ?
  42. 42. Utilizando memória RAM como filesystem mkfs  -­‐q  /dev/ram1  16384  (igual  a  16MB)   mkdir  -­‐p  /ramcache   mount  /dev/ram1  /ramcache   df  -­‐H  |  grep  ramcache     /dev/ram1                            16.1M      1.1M      6.7M    15%  /ramcache           Criando um filesystem em RAM para logs – Velocidade de escrita
  43. 43. Processos e suas prioridades No  curso  de  formação  LPI  é  ensinado  que  o  linux  possui  comandos  que    têm  como  objeCvo   alterar  a  prioridade  dos  processos.    Nice  e  renice  são  eles,  mas  vale  a  pena  ?     Vale  lembrar  que  somente  o  root  poderá    iniciar  um  processo  com  prioridade  negaCva  (alta),   quer  dizer,  com  maior  prioridade,  e  que  o  comando  renice  serve  para  alterar  a  prioridade  de   processos  que  já  estão  em  execução.         Quais  são  os  casos  onde  é  recomendado  a  alteração  da  prioridade  de  processos  no  linux    e   como  o  kernel  do  linux  gerencia  isso  ?   É recomendado alterar a prioridade de processos no linux?
  44. 44. Processos e swap #!/bin/bash   #  Get  current  swap  usage  for  all  running  processes   #  Erik  Ljungstrom  27/05/2011   SUM=0   OVERALL=0   for  DIR  in  `find  /proc/  -­‐maxdepth  1  -­‐type  d  |  egrep  "^/proc/[0-­‐9]"`  ;  do   PID=`echo  $DIR  |  cut  -­‐d  /  -­‐f  3`   PROGNAME=`ps  -­‐p  $PID  -­‐o  comm  -­‐-­‐no-­‐headers`   for  SWAP  in  `grep  Swap  $DIR/smaps  2>/dev/null|  awk  '{  print  $2  }'`   do   let  SUM=$SUM+$SWAP   done   echo  "PID=$PID  -­‐  Swap  used:  $SUM  -­‐  ($PROGNAME  )"   let  OVERALL=$OVERALL+$SUM   SUM=0     done   echo  "Overall  swap  used:  $OVERALL"   Como descobrir quais processos estão swapando ? /etc/sysctl.conf   vm.swappine  =  0  até  100       (quanto  menor,  menos  swap  o  seu  ambiente   uClizará)  
  45. 45. Processos e alocação de memória Como o hugepages pode melhorar a performance do seu ambiente Transparent  HugePages     /sys/kernel/mm/transparent_hugepage/enabled   Never  è  desabilita     Configurando  Sta?c  HugePages     cat  /proc/sys/vm/nr_hugepages   echo  25000  >  /proc/sys/vm/nr_hugepages   mount  -­‐t  hugetlbfs  hugetlbfs  /dev/hugepages   cat  /proc/meminfo  |  grep  Huge  
  46. 46. Alocação de memória e cache Como limpar o cache do seus ambiente e porquê ? $  free  &&  sync  &&  echo  3  >  /proc/sys/vm/drop_caches  &&  free                                  total              used              free          shared        buffers          cached   Mem:              1018916          980832            38084                    0            46924          355764   -­‐/+  buffers/cache:          578144          440772   Swap:            2064376                128        2064248                                total              used              free          shared        buffers          cached   Mem:              1018916          685008          333908                    0                224          108252   -­‐/+  buffers/cache:          576532          442384   Swap:            2064376                128        2064248       O  programa  fincore  serve  para  descobrir  quais  arquivos  estão  sendo  cacheados.  
  47. 47. Ferramentas - Latencytop Instalação  *1     Ubuntu   apt-­‐get  update  –y   apt-­‐get  install  latencytop   latencytop     grep  -­‐i  latencytop  /boot/config-­‐`uname  -­‐r`   CONFIG_HAVE_LATENCYTOP_SUPPORT=y   CONFIG_LATENCYTOP=y     CentOS/RedHat  *2   Yum  install  latencytop   latencytop     *2  You  must  also  enable  the   CONFIG_LATENCYTOP=y     Ferramenta  para  análise  de   latência  de  aplicações   *1  A  execução  dele  depende  do  X11fowarding  SSH    
  48. 48. Ferramentas - PowerTop Instalação       Ubuntu   apt-­‐get  update  –y   apt-­‐get  install  powertop   powertop     CentOS/RedHat  *2   yum  install  powertop   powertop       O  mais  interessante  é  que  ele   gera  reports  em  csv  ou  html   Ferramenta  para  análise  de   consumo  de  energia  de  hardware,   aplicações  e  Kernel  
  49. 49. Ferramentas - Pmap Ferramenta  responsável   por  apresentar  um  mapa   sobre  a  uClização  de   memória  feita  por   processos.   Excelente   para  detectar   processos   que  estejam   alocando   memória    
  50. 50. Ferramentas - SystemTap Instalação         CentOS/RedHat  *1   yum  install  systemtap     *1  Há  necessidade  de  instalar  o  Kernel-­‐ devel,  debuginfo  e  o  debuginfo-­‐common   de  cada  ambiente  Linux  onde  ele  for   rodar.  No  nosso  caso  foi  o  yum  install   kernel-­‐devel  kernel-­‐debug-­‐devel  e  depois   o  comando  yum  -­‐-­‐enablerepo=debug   install  kernel-­‐debuginfo     Há  problemas  quando  instalado  em   ambientes  Cloud,  como  digital  ocean   Ferramenta  para  coleta  e  análise   de  informações  de  um  servidor   Linux.    Uma  das  mais  completas,   em  minha  opinião   Depois  de  todos  os  pacotes  instalados,  vc  deverá  executar  o   seguinte  comando  para  testar  o  SystemTAp  stap  -­‐v  -­‐e  'probe   vfs.read  {prin}("read  performedn");  exit()}'  
  51. 51. Ferramentas - SS Informações  que  ele  coleta:     •  All  TCP  sockets.   •  All  UDP  sockets.   •  All  established  ssh  /  •p  /  hnp  /  hnps  connecCons.   •  All  local  processes  connected  to  X  server.   •  Filtering  by  state  (such  as  connected,  synchronized,  SYN-­‐RECV,   SYN-­‐SENT,TIME-­‐WAIT),  addresses  and  ports.   •  All  the  tcp  sockets  in  state  FIN-­‐WAIT-­‐1  and  much  more.   •  You  can  use  regex  and  filter,  like  the  example   Mais  informações  e  exemplos  de  uso  no  hnp:// blog.corujadeC.com.br/o-­‐comando-­‐ss-­‐ao-­‐inves-­‐do-­‐netstat/     Ferramenta  para  análise  de  rede,   trazendo  mais  informações  que  o   já  conhecido  netstat    
  52. 52. Ferramentas - Dstat Informações  que  ele  coleta:     •  Status  de  filesystem   •  Status  de  ipc   •  Status  de  sockets   •  Status  de  conexões  TCP/IP   •  Há  necessidade  de  instalacão  no  CentOS   Ferramenta  que  reune  os  mesmos   dados  apresentados  que  o   vmstat,  iostat  e  o  ifstat,  mas  com   gráficos  melhores.   dstat  -­‐ta  -­‐-­‐top-­‐bio  –  tente  esse  comando  
  53. 53. Capacity Planning Estratégia   Processos, dados que devemos coletar e analisar Escopo   Coleta   Análise   Execução   Mesmo  com  tantas   ferramentas  e  dados,  não   podemos  nos  esquecer   dos  princípios  
  54. 54. Ferramentas - slabtop Ferramenta  que  demonstra  o   consumo  de  memória  pelo  Kernel,   assim  como  a  uClização  do  cache     slabtop  -­‐o  -­‐s  c  |  head  -­‐n15  
  55. 55. Ferramentas – collect Informações  que  ele  coleta:     •  cpu   •  disks   •  Network   •  Há  necessidade  de  instalacão  no  CentOS  e   possuir  o  Perl  pré-­‐instalado.   A  evolução  do  top  e  do  htop,  pois   apresenta  uma  série  de  dados   esta*scos  e  informações,  sem   ficar  restrito  a  limites  –  depende   do  Perl  instalado  para  rodar  
  56. 56. Ferramentas – iodump (script) Informações  que  ele  coleta:     •  Status  de  filesystem   •  Status  de  ipc   •  Status  de  sockets   •  Status  de  conexões  TCP/IP   •  Há  necessidade  de  instalacão  no  CentOS  -­‐  wget   hnp://aspersa.googlecode.com/svn/trunk/iodump   •  echo  1  >  /proc/sys/vm/block_dump  (precisa  ser  implementado   para  que  ele  funcione)   Ferramenta  que  apresenta  os  meus   dados  quevmstat,  iostat  e  o  ifstat     while  true;  do  sleep  1;  dmesg  -­‐c;   done  |  perl  iodump    
  57. 57. Ferramentas – iotop Ferramenta  para  análise  de  I/O   correlacionando  processos  e  discos  –  Uma   das  melhores  ferramentas  para  tal  análise,   porém,  o    CONFIG_TASK_IO_ACCOUNTING   precisa  estar  habilitado  no  kernel  do  Linux.   ***  precisa  de  instalação  ***     Também  recomendado  a  execução  do   comando  abaixo   echo  1  >  /proc/sys/vm/block_dump  
  58. 58. Ferramentas – Vnstat Ferramenta  para  análise  do  tráfego  de  rede   que  é  capaz  de  exportar  os  dados  para  o   formato  csv  (excel).     É  possível  criar  filtros  de  coletas  para  hora,   dia  e  outras.     Precisa  ser  instalado  no  CentOS.      
  59. 59. Ferramentas – mpstat Ferramenta  para  análise  de   performance  da  CPU,  apresentando   importantes  informações  quanto  a   saúde  do  servidor     mpstat  –P  ALL  1       apt-­‐get  install  sysstat  –y    (processo  de   instalação)       O  sysstat  é  responsável  pela  gestão  de   uma  suíte  de  ferramentas  focadas  em   monitoração,  são  elas:   •  Mpstat            pidstat       •  Iostat                               •  Sadc   •  Sar   $  mpstat  -­‐P  ALL     Linux  3.2.0-­‐57-­‐generic  (USERNB01)  12/12/2013  _x86_64_  (2  CPU)     04:07:36  PM  CPU  %usr  %nice  %sys  %iowait  %irq  %so•  %steal  %guest  %idle   04:07:36  PM  all  6.02  0.04  1.72  2.99  0.00  0.05  0.00  0.00  89.17   04:07:36  PM  0  3.84  0.01  1.15  3.72  0.00  0.06  0.00  0.00  91.21   04:07:36  PM  1  13.55  0.15  3.66  0.46  0.00  0.03  0.00  0.00  82.15     -­‐  See  more  at:  hnp://linoxide.com/linux-­‐command/linux-­‐mpstat-­‐command/ #sthash.nLCLYBo1.dpuf  
  60. 60. Ferramentas – iptraf Ferramenta  responsável  por  apresentar   uma  série  de  informações  referente  a   redes.  ***  precisa  ser  instalada  ***     Iptraf  é  muito  versáCl  e  fornecer  uma  série   de  esta•sCcas,  como  :     •  Network  traffic  staCsCcs  by  TCP   connecCon   •  IP  traffic  staCsCcs  by  network  interface   •  Network  traffic  staCsCcs  by  protocol   •  Network  traffic  staCsCcs  by  TCP/UDP   port  and  by  packet  size   •  Network  traffic  staCsCcs  by  Layer2   address    
  61. 61. Ferramentas – ethtool ethtool eth2 Settings for eth2: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Link partner advertised link modes: Not reported Link partner advertised pause frame use: No Link partner advertised auto-negotiation: No Speed: 1000Mb/s Duplex: Full Link detected: yes ethtool ferramenta capaz de lhe apresentar em detalhes uma série de informações pertinentes a sua interface rede.
  62. 62. Cálculo de Pacotes de Rede por segundo Um conceito importante e que deve estar na veia do pessoal de performance
  63. 63. Ferramentas – lsof Lsof ferramenta versátil que possui como uma de suas funções a listagem de arquivos em aberto (utilização) lsof –p <pid> lsof -i tcp; lsof -i udp;
  64. 64. Ferramentas – jnettop Ferramenta  de  análise  de  tráfego  de  rede   entre  servidores  e  hosts,  que  trás  mais   informações  que  o  inop  ,  além  de   possibilitar  o  export  dos  dados   capturados  para  arquivos  .csv     Há  necessidade  de   instalação     Ubuntu   Apt-­‐get  install  jneHop   Centos   Yum  install  jneHop     jnenop  -­‐-­‐display  text  -­‐t  5  -­‐-­‐format  '$srcname$,$srcport$,$dstname$,$dstport$,$totalbps$'  
  65. 65. Bibliografia   Inclua  a  isso  muita   pesquisa,  dia-­‐a-­‐dia  e   troca  de   conhecimento.  

×