legend分布式服务器集群中的数据库服务器的性能测试

本文对比了游戏服务器架构中MainCache+DaemonORM与OnlyORM两种方式的性能差异,前者在单条及批量数据库操作上展现出更高效率。

今天将把如下图所示测试用例进行测试:

 

MainCache代表主线程是缓存操作
DaemonORM代表守护线程是ORM入库操作,其中ORM开启了事务处理
OnlyORM代表仅仅使用ORM直接入库操作

 

本框架采用的是MainCache+DaemonORM的机制,即所有玩家对DB的任何操作都是在内存中进行,任何变更都会由守护线程后台通过ORM同步到DB中
以下测试结果对MainCache+DaemonORM与OnlyORM进行了对比

 


在里面有一万条记录的基础上做单条记录的操作:

7、让数据库插入一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.008 ms
11、让数据库查询一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.0083 ms
15、让数据库更新一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.0108 ms
19、让数据库删除一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.387 ms 


9、让数据库插入一条记录时的消耗【OnlyORM】 测试结果:1.6591 ms
13、让数据库查询一条记录时的消耗【OnlyORM】 测试结果:189.6548 ms
17、让数据库更新一条记录时的消耗【OnlyORM】 测试结果:189.9446 ms
21、让数据库删除一条记录时的消耗【OnlyORM】 测试结果:193.748 ms

 

在空记录的基础上做万条记录的操作: 

8、让数据库插入一万条记录时的消耗【MainCache+DaemonORM】 测试结果:528.347 ms(7秒左右真正入库)
12、让数据库查询一万条记录时的消耗【MainCache+DaemonORM】 测试结果:0.0321 ms
16、让数据库更新一万条记录时的消耗【MainCache+DaemonORM】 测试结果:0.4955 ms (7秒左右真正更新)
20、让数据库删除一万条记录时的消耗【MainCache+DaemonORM】 测试结果:43.587 ms (14秒左右真正删除) 

10、让数据库插入一万条记录时的消耗【OnlyORM】 测试结果:7309.926 ms
14、让数据库查询一万条记录时的消耗【OnlyORM】 测试结果:189.4596 ms
18、让数据库更新一万条记录时的消耗【OnlyORM】 测试结果:7919.8537 ms
22、让数据库删除一万条记录时的消耗【OnlyORM】 测试结果:14557.4186 ms

 

从以上结果可以看出:OnlyORM的效率明显比MainCache+DaemonORM的方式低很多,我用的是Fluent NHibernate,如果用Dapper性能会更快,但是仍然是需要你手写sql语句,在生产环境中我采用MainCache+DaemonORM的方式,因为它效率特别快,当然Legend集群架构中是支持多个DBServer的,因此在不同DBServer之间的缓存同步处理此处不提及,可以参见《网络游戏大世界分布式自适应服务器架构详

 

 

转载于:https://www.cnblogs.com/legendstudio/p/5136366.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值