Como encontrar o que está martelando minha E / S?

2

Em uma máquina Ubuntu Linux que é usada como um servidor web, vejo que estou realmente martelando a E / S:

 - dysphoria():~$ iostat -d 3 3
Linux 3.13.0-45-generic (dysphoria)     2015-10-20      _x86_64_        (1 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda             53.20      3228.67         3.63 1962017809    2203864
xvdf              0.00         0.00         0.00       1308          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda           1106.83     47900.72         0.00     133164          0
xvdf              0.00         0.00         0.00          0          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda           1003.56     53824.91         8.54     151248         24
xvdf              0.00         0.00         0.00          0          0

Observe que a E / S da média é alta, com 53, mas a E / S atual é superior a 1000! Como posso determinar o que está causando isso? Em top , vejo que o MySQL está com 20% da CPU e fatrace não está ajudando:

$ sudo fatrace 
read: Value too large for defined data type

Eu olhei para esta quetion da AWS EC2 , com armazenamento EBS (não local). Algumas informações sobre a máquina:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2000       1906         94          7          3       1239
-/+ buffers/cache:        663       1337
Swap:            0          0          0

$ cat /etc/issue
Ubuntu 14.04.1 LTS \n \l

$ uname -a
Linux dysphoria 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 62
model name      : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
stepping        : 4
microcode       : 0x416
cpu MHz         : 2500.058
cache size      : 25600 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm xsaveopt fsgsbase smep erms
bogomips        : 5000.11
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:
    
por dotancohen 20.10.2015 / 11:28

1 resposta

5

Você precisa usar iotop para descobrir qual programa com alto uso de IO primeiro.

e use Algumas ferramentas para monitoramento do MySQL.

    
por 20.10.2015 / 11:41