micro instância do Amazon EC2 grande número de solicitações de E / S

2

Estou tentando entender por que tenho um grande número de solicitações EBS IO em minha micro instância do Amazon EC2. Eu lancei a instância há cerca de 6 dias e acumulei mais de 4 milhões de pedidos de IO até o momento. A instância veio pré-carregada com uma pilha LAMP (Virtualmin, PHP, Apache, MySQL). Eu instalei um site Wordpress e só o carreguei em um navegador algumas vezes para fazer alguns testes.

Alguém pode me orientar sobre como determinar o que está gerando todas essas solicitações de E / S possivelmente usando iotop ou algum outro utilitário Linux?

    
por Joe M 10.12.2013 / 00:32

3 respostas

2

Eu também adicionaria as três ferramentas a seguir ao mix. Supondo que você os tenha instalado, caso contrário, você deve ser capaz de instalá-los através de qualquer repositório fornecido para a sua instância do ec2.

A alta carga provavelmente está sendo causada por E / S de disco ou rede, então eu focará nessas duas áreas para começar.

nethogs

A rede seria minha primeira suspeita, para diagnosticar ainda mais, eu usaria nethogs para ver quais processos estão causando isso.

Exemplo

Determine sua interface de rede, para que você possa dizer a nethogs qual deles assistir.

$ ip link show up | awk '/UP/ {print $2}'
lo:
em1:
wlp3s0:
virbr0:

No meu caso, vou assistir ao meu dispositivo sem fio, wlp3s0 .

$ sudo nethogs wlp3s0
NetHogs version 0.8.0

  PID USER     PROGRAM                      DEV        SENT      RECEIVED       
2151  saml     /opt/google/chrome/chrome    wlp3s0     2.117       2.715 KB/sec
3569  saml     ..4/thunderbird/thunderbird  wlp3s0     0.441       1.496 KB/sec
3144  saml     ..aml/.dropbox-dist/dropbox  wlp3s0     0.081       0.061 KB/sec
3383  saml     pidgin                       wlp3s0     0.026       0.056 KB/sec
4025  saml     ssh                          wlp3s0     0.000       0.000 KB/sec
?     root     unknown TCP                             0.000       0.000 KB/sec

  TOTAL                                                2.665       4.327 KB/sec 

Olhando para a saída, podemos ver que chrome está usando a maior parte da minha largura de banda.

iftop

Você pode ver se o tráfego está vindo de um conjunto específico de sites usando iftop .

                195kb           391kb           586kb           781kb      977kb
└───────────────┴───────────────┴───────────────┴───────────────┴───────────────
greeneggs.bubba.net        => stackoverflow.com          4.68kb  10.2kb  8.24kb
                           <=                            33.5kb  14.7kb  21.4kb
greeneggs.bubba.net        => ord08s12-in-f8.1e100.net      0b   3.90kb  3.99kb
                           <=                               0b   3.61kb  3.72kb
greeneggs.bubba.net        => ord08s10-in-f16.1e100.net  5.05kb  4.10kb  5.83kb
                           <=                            2.43kb  2.39kb  2.79kb
greeneggs.bubba.net        => stackoverflow.com          1.32kb  3.34kb  4.73kb
                           <=                            1.30kb  1.60kb  2.30kb
greeneggs.bubba.net        => cpe-67-253-170-83.rochest     0b   2.19kb   760b
                           <=                               0b   2.60kb   862b
greeneggs.bubba.net        => pop1.biz.mail.vip.ne1.yah  5.87kb  1.17kb   301b
                           <=                            17.4kb  3.47kb   889b
greeneggs.bubba.net        => 190.93.247.58               480b   2.04kb  2.66kb
                           <=                               0b   1.34kb  1.80kb
greeneggs.bubba.net        => ig-in-f95.1e100.net         448b   1.02kb  1.27kb
                           <=                             240b    437b    534b
greeneggs.bubba.net        => ord08s12-in-f2.1e100.net    896b    346b    218b
                           <=                             480b    221b    124b
────────────────────────────────────────────────────────────────────────────────
TX:             cum:    652kB   peak:   85.2kb  rates:   20.6kb  29.3kb  30.1kb
RX:                     883kB            161kb           57.9kb  31.4kb  40.6kb
TOTAL:                 1.50MB            241kb           78.5kb  60.7kb  70.7kb

fatrace

Você pode usar a ferramenta fatrace para ver quais processos estão causando acessos ao HDD.

$ sudo fatrace
pickup(4910): O /var/spool/postfix/maildrop
pickup(4910): C /var/spool/postfix/maildrop
sshd(4927): CO /etc/group
sshd(4927): CO /etc/passwd
sshd(4927): RCO /var/log/lastlog
sshd(4927): CWO /var/log/wtmp
sshd(4927): CWO /var/log/lastlog
sshd(6808): RO /bin/dash
sshd(6808): RO /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): R /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): O /etc/ld.so.cache
sh(6808): O /lib/x86_64-linux-gnu/libc-2.15.so

O que mais?

Eu daria uma olhada neste Unix & Linux Q & A que eu respondi um tempo atrás para mais ferramentas para tentar. É intitulado: Determinando o arquivo específico responsável pela alta E / S .

Perguntas de seguimento dos comentários

Q1: Does bandwidth shown by nethogs count against IO requests in AWS? I thought that would fall under 'data transfer' which is a separate category. In iotop the biggest percentage usage was root and a command called 'kswapd0'. mysqld had the biggest disk write usage and httpd had the most disk read

Eu não tenho ideia de como isso realmente é rastreado pela Amazon. Esses valores são da perspectiva do host da VM, portanto, eles podem não se correlacionar nem remotamente ao que a Amazon está rastreando o uso de suas VMs de sua perspectiva.

A propósito, esse kswapd0 é provavelmente a origem de suas solicitações de IO alto. Isso está acontecendo porque, muito provavelmente, sua VM não tem RAM suficiente para satisfazer o tamanho / uso dos aplicativos que você está executando na VM. Então, para tentar atender a necessidade que seu sistema está usando para usar o swap.

Você pode confirmar isso um pouco mais por meio do comando free .

Exemplo

$ free -ht
             total       used       free     shared    buffers     cached
Mem:          7.6G       5.5G       2.1G         0B       446M       2.5G
-/+ buffers/cache:       2.6G       5.0G
Swap:         7.6G        40K       7.6G
Total:         15G       5.5G       9.7G

Isso mostra quanto de RAM & swap estão em uso pelo seu sistema.

Q2: Oh and one follow up question. How does MB or KB of disk read/write in iotop relate to number of IO requests? For example if mysqld wrote 20 M to disk, is there any easy way to know how many IO requests that generated?

Não há realmente nenhuma correlação que eu saiba em relação ao número de leitura / gravação de E / S e à quantidade agregada de dados lidos / gravados no disco.

Considerando que você está usando o AWS, suas leituras / gravações em disco podem muito bem nem estar em um disco local, elas podem ser armazenadas na rede (SoE - também conhecido como SCSI sobre Ethernet, por exemplo).

Sua VM ficaria completamente alheia a isso, já que a configuração de SoE provavelmente seria feita no nível do host e, em seguida, exposta como discos a qualquer VM em execução no host.

Referências

por 10.12.2013 / 04:10
0

Como você disse, iotop é uma boa utilidade para a tarefa, você também pode querer dar uma olhada nas ferramentas de teses:

  • lsof para ver os arquivos por processo.
  • dstat fornece um relatório ao vivo sobre toda a atividade do sistema
  • sar pode fornecer um bom histórico da atividade do seu sistema
por 10.12.2013 / 03:24
0

(meu anedótico)

Eu suspeito que o Wordpress gerou o tráfego de spam. Sites Wordpress são conhecidos por suas tendências de atração de spam, se você não configurá-los.

Além disso, é possível que os spambots estejam configurados para iniciar outro tipo de ataque na instância.

Você configurou a instância para manter todas as portas fechadas?

    
por 10.12.2013 / 04:08