我正在对DigitalOcean(DO)和AWS EC2(t3a.small)的可比较(2vCPU,2G RAM)服务器(Ubuntu 18.04)进行基准测试。
磁盘基准(fio)与https://dzone.com/articles/iops-benchmarking-disk-io-aws-vs-digitalocean的结果保持一致
摘要:
DO-
读取:bw = 218MiB / s(229MB / s),218MiB / s-218MiB / s(229MB / s-229MB / s),io = 3070MiB(3219MB),运行= 14060-14060msec]
WRITE:bw = 72.0MiB / s(76.5MB / s),72.0MiB / s-72.0MiB / s(76.5MB / s-76.5MB / s),io = 1026MiB(1076MB),运行= 14060-14060msec
EC2-
读取:bw = 9015KiB / s(9232kB / s),9015KiB / s-9015KiB / s(9232kB / s-9232kB / s),io = 3070MiB(3219MB),运行= 348703-348703msec
WRITE:bw = 3013KiB / s(3085kB / s),3013KiB / s-3013KiB / s(3085kB / s-3085kB / s),io = 1026MiB(1076MB),运行= 348703-348703msec
显示DO磁盘比EC2的EBS快10倍以上
但是,https://severalnines.com/database-blog/how-benchmark-postgresql-performance-using-sysbench之后的sysbench显示的DO slower比EC2(使用Postgres 11默认配置,对oltp_legacy / oltp.lua进行读写测试)
DO-
交易次数:14704(每秒243.87)
延迟(毫秒):
分钟:9.06
平均:261.77
最大:2114.04
第95百分位数:383.33
EC2-
交易次数:20298(每秒336.91)
延迟(毫秒):
分钟:5.85
平均:189.47
最大:961.27
95个百分位:215.44
可能是什么解释?
对于写入(UPDATE,INSERT),fsync延迟(将数据提交到稳定存储所需的时间,是最重要的因素,因为数据库仅在写入数据后才会完成COMMIT。
很有可能EC2具有更好的随机访问和fsync性能。也许它使用SSD或电池支持的缓存。