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

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

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

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

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

7、让数据库插入一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.3167 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】 测试结果:586.347 ms(10秒左右真正入库)
12、让数据库查询一万条记录时的消耗【MainCache+DaemonORM】 测试结果:0.0321 ms
16、让数据库更新一万条记录时的消耗【MainCache+DaemonORM】 测试结果:0.4955 ms (10秒左右真正更新)
20、让数据库删除一万条记录时的消耗【MainCache+DaemonORM】 测试结果:48.587 ms (15秒左右真正删除)

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

从以上结果可以看出:OnlyORM的效率明显比MainCache+DaemonORM的方式低很多,当然如果不启用事务应该会提升效率,但是在生产环境中我采用MainCache+DaemonORM的方式,

因为它效率特别快,当然Legend集群架构中是支持多个DBServer的,因此在不同DBServer之间的缓存同步处理此处不提及,可以参见《网络游戏大世界分布式自适应服务器架构详

 

时间: 2024-08-05 19:06:31

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

pomelo服务器集群中集成http服务器

项目接近尾声,这个周在弄运维相关的一些东西. 运维部门需要一个http服务器,来查询服务器及玩家的一些数据. 在做的过程中考虑的是两个问题: 1 这个http服务器挂在什么地方? 为了不污染pemelo的代码,做了一个httpServer的组件,在gate服务器中加载. 因为其他服务器可能有多个,这样会重复加载httpServer组件,导致端口重复监听. 2 多个area服务器,如何确定rpc调用的路由? pomelo默认的路由格则如下: // game-server/node_modules/

Window平台搭建Redis分布式缓存集群 (一)服务器搭建及性能测试

百度定义:Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型),为了保证效率,数据都是缓存在内存中. 区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步. 以前公司一直在使用ehcache缓存,但是随着业务增多和用户访问量的增多

legend分布式服务器集群压测结果

(如果图小,可以Ctrl+鼠标滚轮给缩放) 以下是并发上线1.5万人时的测试结果,如果只是测试万人级别的承载量单网关单逻辑服单数据服的架构将比分布式集群的服务器架构速度更快 本次测试为整个集群只配置了单个对外网关服务器与单个对内逻辑服务器,每个客户端从登陆到上线进场景将会发送与接收并处理了13条消息,其中包括读与写数据库,分10个机器人来批量同时进行上线,前5个机器人每个上线2000个,后5个机器人每个上线1000个,一共是15000个,因此一共处理了15000*13=195000条消息的收发与

大型网站技术架构,6网站的伸缩性架构之分布式缓存集群的伸缩性设计

和所有服务器都部署相同应用的应用服务器集群不同,分布式缓存服务器集群中不同的服务器中缓存的数据各不相同,缓存访问请求不可以在缓存服务器集群中的任意一台处理,必须先找到缓存有需要数据的服务器,然后才能访问. 这个特点制约了分布式缓存集群的伸缩性设计,因为新上线的缓存服务器没有缓存任何数据,而已下线的缓存服务器还缓存这网站的许多热点数据. 必须让新上线的缓存服务器对整个分布式缓存集群影响最小,也就是说新加入的缓存服务器应使整个缓存服务器集群中已经缓存的数据尽可能还被访问到,这是分布式缓存集群伸缩性设

Linux服务器集群系统(一)(转)

add by zhj:虽然是2002年的文章,但读来还是收益良多.在 章文嵩:谈LVS及阿里开源背后的精彩故事 中LVS发起人及主要贡献者谈了LVS的开发过程及阿里开源的一些故事 原文:http://www.linuxvirtualserver.org/zh/lvs1.html 本文介绍了Linux服务器集群系统--LVS(Linux Virtual Server)项目的产生背景和目标,并描述了LVS服务器集群框架及目前提供的软件,列举LVS集群系统的特点和一些实际 应用,最后,本文谈论了LVS

如何在tomcat集群中实现Session共享

转自:http://www.toutiao.com/i6388049068718817794/ Apache集群实现Tomcat的Session共享配置其实很简单,在Tomcat自带的文档中有详细的说明( /docs/cluster-howto.html ),只不过是英语的,所以联合 下面根据说下怎么配置吧: 1.既然是集群肯定要多准备几个Tomcat来模拟,比如分别为Tomcat01.Tomcat02.Tomcat03. 如果各Tomcat程序放在不同的机器上,那么就不会有端口的冲突.如果是放

Zookeeper服务器集群的搭建与操作

ZooKeeper 作用:Zookeeper 可以用来保证数据在zk集群之间的数据的事务性一致(原子操作). 介绍:Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务.  它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. 特性:简单的.富有表现力的.具有高可用性.采用松耦合交互方式.是一个资源库. 如何搭建ZooKeeper服务器集群 2.1 ZooKeeper服务器集群规模不小于3个节点,要求各服务器之间

分布式、集群、微服务的区别

出处:  分布式与集群的区别是什么? 下面就正经解释下三种结构的区别吧- 单机结构 我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了.整个项目所有的服务都由这台服务器提供.这就是单机结构. 那么,单机结构有啥缺点呢?我想缺点是显而易见的,单机的处理能力毕竟是有限的,当你的业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求.此时便出现了集群模式,往下接着看. 集群结构 集群模式在程序猿界有各种装逼解释,有的

FineReport如何部署Tomcat服务器集群

环境准备 Tomcat服务器集群中需要进行环境准备: Apache:Apache是http服务器,利用其对Tomcat进行负载均衡,这里使用的版本是Apache HTTP Server2.0.64: Tmocat:Tmocat7.0.6: JK:JK是Tmocat提供给http服务器的插件,这里使用的版本是tmocat-connectors-1.2.37-windows-i386-httpd-2.0.x: 系统:win7. 软件安装 Apache 下载完成之后,直接安装apache,安装完成之后