公司系统目前在天翼云主机中,因近期使用者增加,系统复杂度的增加,导致系统出现了一些性能上的不足,考虑到天翼云只有单纯的云主机且性能不咋地,升级还贼贵,所以对BAT三家云主机以及现有云主机进行了一次性能的评测。
一、测试主机清单
主机商 | 天翼云 | 腾讯云 | 阿里云 | 百度云 |
配置 | 2核
4G RAM 100G |
2核
4G RAM 100G(云硬盘) |
2核
4G RAM 100G(高效云盘) |
2核
4G RAM 100G |
价格 | 3672 | 2784(2310.72) | 3036(2580.6) | 2560(高性能云硬盘) |
* 因目前可暂停使用天翼云主机配置为2核4G RAM,100G硬盘,为公平起见,主机配置标准采用相同配置
* 不同硬盘类型性能差距很大,因除天翼外云主机均提供数据库服务,此处均未选择SSD硬盘
* 腾讯云和阿里云目前有优惠活动,括号内为当前优惠价
* 此价格不包含带宽价格
二、综合测试
使用工具:UnixBench 5.1.3
主机商 | 天翼云 | 腾讯云 | 阿里云 | 百度云 |
得分
(越高越好) |
1541.2 | 2668.7 | 2439 | 1520.1 |
三、单项测试
主机商 | 天翼云 | 腾讯云 | 阿里云 | 阿里云 | 百度云 |
CPU Cyclictest
(越低越好) |
30 | 9 | 12 | 39 | |
Mbw
(越高越好) |
2867.299 MiB/s | 7483.310 MiB/s | 5544.381 MiB/s | 5704.145 MiB/s | |
Fio read
(越高越好) |
133 IOPS | 741 IOPS | 1238 IOPS | 1133 IOPS | |
Fio write
(越高越好) |
176 IOPS | 507 IOPS | 1222 IOPS | 1235 IOPS | |
Dd write
(越高越好) |
152 MB/s | 66.1 MB/s | 56.0 MB/s | 数据库二次测试,4000IOPS | 119 MB/s |
Sysbench R
(越高越好) |
4435.48 次/s
平均请求时间 18.93ms |
15040.17 次/s
平均请求时间 5.58ms |
2432.39 次/s
平均请求时间 34.52ms |
3878.03 次/s
平均请求时间 21.65ms |
5675.02 次/s
平均请求时间 14.79ms |
Sysbench RW
(越高越好) |
4343.39 次/s
平均请求时间 26.23ms |
17166.90 次/s
平均请求时间 6.62ms |
2198.19 次/s
平均请求时间 51.84ms |
3491.89 次/s
平均请求时间 32.64ms |
5971.11 次/s
平均请求时间 19.08ms |
实际业务复杂SQL一条
(越低越好) |
14.731s
13.888s 13.950s |
4.48s
4.31s 4.28s |
7.11s
6.87s 6.86s |
4.72s
4.51s 4.57s |
5.78s
5.43s 5.42s |
网络测试
共103个节点 测试文件大小:528.98KB 1.428MB |
总时间:4.855s
平均速度556.187KB/s |
总时间:2.482s
平均速度 1.133MB/s |
总时间:2.352s
平均速度1.325MB/s |
总时间:
1.82s 平均速度 1.524MB/s |
数据库测试,BAT三家均为独立数据库服务,天翼因没有提供数据库服务,采用自己装mysql测试,均采用4G ram版本。
* 阿里云有两次测试是因为我把测试结果给力神看了,他说,阿里和腾讯IOPS都不一样,没有可比性,所以重新开了个8G的rds来测试。
四、结论
根据上述测试结果,可以看出,腾讯云和阿里云较之天翼云与百度云有着很大的优势,两者均达到了官方所标识的参数,对于超出官方性能的部分,腾讯云直接提供给用户(Sysbench测试结果爆表原因),阿里云选择限制,仅给出标识性能。
附录一、测试花絮
天翼云只支持CentOS 6.x,在测试Geekbench 的时候,提示glibc版本过低,首先跑去扑哧扑哧的编译了一个glibc-2.16,发现ls都不可用了,又跑去编译了一个glibc-2.15,接着提示libstdc++版本过低,好吧,我放弃Geekbench这个工具了。
附录二、工具下载地址
UnixBench https://github.com/kdlucas/byte-unixbench/archive/v5.1.3.tar.gz
Cyclictest git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
mbw https://github.com/raas/mbw/archive/v1.4.tar.gz
fio https://github.com/axboe/fio/archive/fio-2.16.tar.gz
附录三、各工具测试命令
UnixBench ./Run
Cyclictest ./cyclictest -D 10s -q
mbw ./mbw -n 250 -t 0 200
./fio –name=randread –direct=1 –bs=4k –iodepth=64 –size=4G –rw=randread –gtod_reduce=1
./fio –name=randwrite –direct=1 –bs=4k –iodepth=64 –size=4G –rw=randwrite –gtod_reduce=1
dd if=/dev/zero of=test.dbf bs=8k count=200000 conv=fdatasync
sysbench –test=oltp –oltp-table-size=1000000 –mysql-db=dbtest –mysql-host=10.66.104.109 –mysql-user=root –mysql-password=Ruvrj9CdkL9Qsn3Y –db-driver=mysql prepare
sysbench –test=oltp –oltp-table-size=1000000 –oltp-test-mode=complex –oltp-read-only=off –num-threads=6 –max-time=60 –max-requests=0 –mysql-db=dbtest –mysql-host=10.66.104.109 –mysql-user=root –db-driver=mysql –mysql-password=Ruvrj9CdkL9Qsn3Y run
sysbench –test=oltp –oltp-table-size=1000000 –oltp-test-mode=complex –oltp-read-only=on –num-threads=6 –max-time=60 –max-requests=0 –mysql-db=dbtest –mysql-host=10.66.104.109 –mysql-user=root –db-driver=mysql –mysql-password=Ruvrj9CdkL9Qsn3Y run
复杂SQL:select * from (select a.pid, b.pbid, a.gid, gczbid, projectstatus, companyname, projectname, bailmoney, backbailbank, backbailprovince, backbailcity, bailtype, b.comment, bailcomment, paycompanyname, backbailaccount, backbailname, bailreachtime, backbailinterestrate, backbailinterest, backbailtime, backbailtotal, bailhasreturned, returnbailtime, returnbailmoney, locktime, financereturnbaildate, CASE WHEN SUM(c.iswinner)=0 THEN 0 ELSE 1 END AS iswinner from gczb_projects as a, gczb_projects_bidders as b, gczb_packages_bidders as c where a.pid = b.pid and b.pbid = c.pbid group by a.pid, b.pbid) a left join (select pid, winningtime from `gczb_packages` group by pid) as b on b.pid= a.pid where 1 order by gczbid asc, projectname asc limit 10
大佬 你的网络测试 怎么测试的呀?测试命令是啥呢?
666666