在用作网络服务器的 Ubuntu Linux 机器上,我发现我确实在敲击 I/O:
- 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
请注意,平均的I/O 高达 53,但当前的I/O超过1000!我如何确定导致此问题的原因?我top
看到 MySQL 的 CPU 利用率为 20%,并且fatrace
没有帮助:
$ sudo fatrace
read: Value too large for defined data type
我看过这个问题但他们的问题是交换,我没有启用它,因为这是一个AWS EC2实例,与电子束系统(非本地)存储。有关机器的一些信息:
$ 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:
答案1
你需要iotop
先使用来查找哪个程序的IO使用率高。
并使用一些工具用于 MySQL 监控。