http://www.cnblogs.com/sennly/p/4135658.html
1. 测试目的
本次测试的目的在于对微软云主机做性能测试,评估其是否能够满足我们业务的需求。
2. 测试项目
Ø CPU性能
Ø 磁盘IO性能
Ø nginx并发性能
Ø Redis写入性能
3. 测试方法
本次测试采用同项异机测试,相同的项目分别在微软云主机、KVM虚拟机、真实主机上做测试,比照测试结果数据,以综合评估微软云主机性能。
4. 测试主机配置
名称 |
CPU |
内存 |
磁盘 |
微软云主机(Azure) |
4 X e5-2660 2.2G |
28G |
微软云存储 |
虚拟机(1-89) |
4 X E5620 2.4G(宿主) |
28G |
Raid5(600MB/s) |
实体机(1-134) |
4 X E5620 2.4G |
32G |
Raid5(600MB/s) |
5. CPU测试(Super PI)
本测试通过使测试机计算指定位数的圆周率,比较花费时间而评估各个机器的CPU性能。
5.1. Azure的CPU测试数据
5.2. 虚拟机的CPU测试数据
5.3. 实体机的CPU测试数据
5.4. CPU性能测试结论
名称 |
PI的位数 |
花费时长/秒 |
微软云主机(Azure) |
2的25次方 |
1597 |
虚拟机(1-89) |
2的25次方 |
894 |
实体机(1-134) |
2的25次方 |
901 |
由此我们可以看出,微软云主机的计算能力相较于实体机,计算能力稍弱一些,但从实际应用来讲,性能已可满足大部分应用。
6. 磁盘IO测试
本项测试通过分别写入大文件及读写小文件对相关机器的IO性能做一评测。
6.1. 大文件写入50G
6.2. 小文件读写
生成10000个128K大小的文件写入磁盘,再将其完整复制。
6.3. 磁盘IO测试结论
名称 |
小文件读写耗时/秒 |
|
微软云主机(Azure) |
645 |
33.8 |
虚拟机(1-89) |
503 |
57.4 |
实体机(1-134) |
603 |
31.8 |
通过以上数据我们可以发现,微软云主机的磁盘性能与实体相差不大,性能不错。
7. nginx并发测试
针对此测试,特意对nginx重新编译,并调整配置文件,使其性能相近。我们使用Webbench进行压力测试,2000的并发量,运行时长为300秒。
7.1. Azure的nginx并发测试数据
7.2. 虚拟机的nginx并发测试数据
7.3. 实体机的nginx并发测试数据
7.4. nginx并发的测试结论
名称 |
成功次数 |
失败次数 |
微软云主机(Azure) |
2744740 |
66728 |
虚拟机(1-89) |
2270573 |
50351 |
实体机(1-134) |
4453635 |
50011 |
在nginx并发测试中微软云主机与相同配置的虚拟机相比性能更强。
8. Redis并发性能测试
这是我个人比较担心的项目,因为Redis在虚拟机环境相对于实体机,会有较大的性能损失。我们通过测试机本机,向其上的Redis服务器SET 800万条1K的数据,并发量是500,语句如下:
/usr/local/services/redis/bin/redis-benchmark -p 6370 -t set -n 8000000 -c 500 -r 10000000 -d 1024
8.1. Azure的Redis并发测试数据
8.2. 虚拟机的Redis并发测试数据
8.3. 实体机的Redis并发测试数据
8.4. Redis并发的测试结论
名称 |
压入条数 |
压入速度/秒 |
微软云主机(Azure) |
8000000 |
22141 |
虚拟机(1-89) |
8000000 |
26083 |
实体机(1-134) |
8000000 |
50568 |
通过以上测试数据,我们发现微软云主机的Redis性能与同等配置的虚拟机基本相同,虽然与实体机相比较差,但可在架构层面做业务分片,用更多的云主机搭建redis实例,从而横向扩展。
9. 测试总体结论
Ø CPU计算能力与相同配置的虚拟机持平,但可通过方便的横向扩展来解决
Ø 磁盘IO性能优异,与我们的Raid5持平,能够满足我们的需求