物理机和虚拟机性能对比
压测环境
三台机器通过千兆交换机相连。本次测试由于时间短,且R640中两台机器配置相同,选择将R640_1作为施压机器,R640测试则以R640_2测试为准。
硬件具体信息见下表:
功能 | 机器类型 | CPUs | Mem | 硬盘 | raid |
---|---|---|---|---|---|
施压机器 | R640物理机 | 48 | 128G | raid10 | |
压测机器 | R640物理机 | 48 | 128G | raid10 | |
压测机器 | R640 Xen虚拟机 | 32 | 118G | raid10 | |
压测机器 | R740物理机 | 12 | 256G | raid10 | |
压测机器 | R740 Xen虚拟机 | 12 | 240G | raid10 |
其它信息见下表:
环境 | 信息 |
---|---|
操作系统版本 | CentOS7.2 |
数据库版本 | mongo3.6.9 |
文件系统 | xfs文件系统 |
压测工具 | ycsb0.2 |
压测数据量 | 200G |
- 文件系统信息:xfs格式, relatime
- 压测数据量大小:200G
- 数据库版本:mongo3.6.9
压测结果
由于时间限制,目前只进行了100并发全面测试。若有需要可以进行其他并发测试。
上图中,100并发下,R640和R740物理机性能均优于虚拟机。
上面两张表统计,R640虚拟机读写延迟变化不明显,但R740虚拟机延迟明显增加。
结论
在本次测试中,R740物理机器ops和读写性能均高于虚拟机。R640物理机ops高于虚拟机,读写延迟基本持平。
在以后的数据库服务器选择中,应优先考虑物理机器。
压测满负载展示
数据库版本性能对比
本次压测时间相对充足,将针对mongo3.6.9,mongo4.2,percona4.2三个版本进行性能测试。
压测环境
功能 | 机器类型 | CPUs | Mem |
---|---|---|---|
施压机器 | R730物理机 | 12 | 256G |
压测机器 | R640物理机 | 40 | 128G |
其他信息:
- 文件系统信息:xfs格式,relatime
- 压测数据量大小:200G
- 数据库版本:mongo3.6.9
压测满负载展示
压测结果
顺序写性能
上面两张图中,load ops高峰都位于80并发,25000ops。低并发时,顺序写性能percona性能相比较于官方mongo略高,写入延迟基本一致,且在200并发时写入延迟较低。
顺序写性能:percona4.2.2 > mongo3.6.9 > mongo4.2.2
读写性能
上面两张图中,run ops 从100并发后放缓,基本稳定。读写过程中,95%read和95%update曲线变化一致。其中在并发量达到200时,mongo4.2.2 ops降低。run并发测试过程中,percona read ops较低,且在100并发后,查询延迟较高,read性能低。
mongo 3.6.9在100并发以上时表现优于mongo4.2.2。
读写性能:mongo3.6.9 > mongo4.2.2 > percona4.2.2
结论
目前mongo新版本已经发布,在单节点测试中3.6.9版本性能略高于4.2.2。官网版本读写性能均高于percona版本。
在后续升级中如果存在必要的4.2.2版本功能,可以选择升级,否则可以保持目前版本,继续使用。
后续将进行副本集和分片集群测试。