我有一台 MySQL 服务器,其性能应该比看上去的要好。我们在 Amazon Cluster Compute (cc1.4xlarge) 上运行 ubuntu
Linux ip-10-0-1-60 3.2.0-25-virtual #40-Ubuntu SMP Wed May 23 22:20:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
我有几个来自 sar 的输出文件,但我真的不知道如何解释。例如,我运行了:
# Individual block device I/O activities
sar -d 1 180 > logs/block_device_io.log &
这让我觉得我的磁盘利用率真的很高(原来这个块设备映射到
/dev/xvdh on /var/lib/mysql type ext4 (rw,_netdev)
我的日志的输出:
10:48:59 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
10:49:00 PM dev202-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:49:00 PM dev202-32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:49:00 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:49:00 PM dev202-112 1008.00 31040.00 1416.00 32.20 1.02 1.01 0.89 90.00
10:49:00 PM dev202-80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
我认为这是一个问题,对吗?几乎在我们看到速度缓慢的整个过程中,它都超过 90%。或者这仅仅意味着 MySQL 正在做它应该做的事情?
答案1
我认为这是一个问题,对吗?几乎在整个过程中,我的速度都超过 90%,我们看到速度很慢。
没错,这绝对是你的问题。磁盘 I/O 是你的性能瓶颈,虽然我认为你没有给我们足够的信息来告诉你如何修复它,但如果你想提高性能,你需要减少实例磁盘上的负载,或者增加实例可支配的磁盘 I/O 量。(不过,老实说,我不知道如何使用 Amazon EC2 VM 做到这一点。)