`
liuxinglanyue
  • 浏览: 551128 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MemLink 性能测试

阅读更多

Introduction

Memlink用于持久化存储论坛中forum=>thread list,thread=>post list数据,下面对比了不同数据存储引擎存储上述逻辑关系的查询性能和内存开销。

Details

硬件

OS:CentOS release 4.6 (Final) 

内存:4G 

CPU:Intel(R) Xeon(R) CPU E5405 @ 2.00GHz (四核)

硬盘:250G SATA 

数据模型

CREATE TABLE `ThreadList` (
  `forumid` int(11) NOT NULL,
  `threadid` char(12) NOT NULL,
  `status` bit(1) DEFAULT 0,
  `reply_time` datetime NOT NULL,
  KEY `threadlist` (`forumid`,`reply_time`,`status`)
) ENGINE=Innodb DEFAULT CHARSET=utf8;

memlink

c:表示c客户端每秒操作成功条数,py:表示python客户端每秒操作成功条数,php:为php客户端每秒操作成功条数。mem:表示memlink server消耗内存。 insert为插入操作,range为获取列表某个范围的操作。插入的列表中的数据每条为12字节。

redis

redis测试一样每条数据是12字节。redis只测试c客户端,使用hiredis。用LRANGE命令获取列表,用LPUSH向队列插入数据。redis是默认配置。

mysql

mysql使用上面的数据库表结构。插入语句为:insert into ThreadList values (1, 'xxxx', 0, now()) 查询列表的语句为:select threadid from ThreadList where forumid=1 order by reply_time limit frompos,len

1. 一个客户端,长连接

memlink

 

操作 1w 10w 100w 1000w
insert

mem:4764K
c:16296

py:12558

php:12153

mem:5032K
c:14125

py:12565

php:12144

mem:6628K
c:13868

py: 13096

php: 12521

mem:18M
c:13187

py:12611

php:12124

mem:139M
range first100 c:10874

py:8275

php:9185
c:11429

py:8273

php:9171
c:10994

py:8068

php:9136
c:11663

py:8256

php:10071
range first200 c:8045

py:6015

php:6544
c:8041

py:6017

php:6545
c:7863

py:5941

php:6542
c:7970

py:6024

php:7010
range first1000 c:1362

py:1446

php:1466
c:1362

py:1448

php:1468
c:1354

py:1440

php:1462
c:1362

py:1444

php:1492
range last100 c:11153

py:8137

php:8996
c:10318

py:7526

php:8263
c:5519

py:4410

php:4691
c:112

py:97

php:97
range last200 c:7938

py:5956

php:6461
c:7515

py:5629

php:6078
c:4615

py:3688

php:3899
c:111

py:96

php:97
range last1000 c:1358

py:1442

php:1458
c:1345

py:1421

php:1440
c:1209

py:1251

php:1272
c:103

py:91

php:91

 

redis

操作 1w 10w 100w 1000w
insert

mem:1060K
15183

mem:1920K
14997

mem:9044
14828

mem:78M
14788

mem:771M
range first100 1328 1329 1324 1332
range first200 708 709 705 709
range first1000 147 148 148 147
range last100 1221 212 19 2
range last200 675 184 19 2
range last1000 147 92 17 2

 

mysql

操作 1w 10w 100w 1000w
insert 10891 10297 10022 9718
range first100 1550 1563 1559 1307
range first200 956 954 956 941
range first1000 230 230 230 235
range last100 31 3 0.3 0.04
range last200 31 3 0.3 0.04
range last1000 30 3 0.3 0.03

 

2. 一个客户端, 全部是短连接。一次请求一个连接。

memlink

操作 1w 10w 100w 1000w
insert

mem:4760K
c:6560

py:6138

php:6064

mem:5108K
c:6466

py:5990

php:5986

mem:6704K
c:6675

py:6092

php:6010

mem:18M
c:6719

py:6012

php:6003

mem:139M
range first100 c:5467

py:4535

php:5064
c:5472

py:4450

php:4944
c:5662

py:4495

php:4712
c:5484

py:4475

php:4779
range first200 c:4533

py:3746

php:4124
c:4563

py:3693

php:4049
c:4709

py:3724

php:3893
c:4567

py:3708

php:3931
range first1000 c:1206

py:1254

php:1291
c:1200

py:1249

php:1285
c:1215

py:1253

php:1263
c:1202

py:1250

php:1266
range last100 c:5468

py:4451

php:4970
c:5229

py:4233

php:4692
c:3763

py:3055

php:3155
c:110

py:96

php:96
range last200 c:4558

py:3692

php:4053
c:4355

py:3545

php:3886
c:3323

py:2680

php:2790
c:110

py:95

php:96
range last1000 c:1198

py:1247

php:1284
c:1191

py:1226

php:1267
c:1096

py:1093

php:1125
c:102

py:91

php:91

 

redis

操作 1w 10w 100w 1000w
insert 10891 10297 10233 10135
range first100 1058 1172 1166 1163
range first200 654 651 669 667
range first1000 146 145 145 144
range last100 994 271 32 3
range last200 630 233 32 3
range last1000 144 104 27 3

 

mysql

操作 1w 10w 100w 1000w
insert 3313 3251 3108 3001
range first100 923 1158 1031 885
range first200 815 823 783 743
range first1000 227 230 226 212
range last100 20 3 0.21 0.02
range last200 30 3 0.3 0.04
range last1000 30 3 0.3 0.03

 

3. 10个客户端,并发长连接。

memlink内部开启4个处理线程。仅c客户端测试。

操作 1w 10w 100w 1000w
insert 23021 22210 22200 22242
range first100 45451 53463 55645 48283
range first200 23768 33966 35045 35417
range first1000 4269 4305 4281 4271
range last100 53719 48948 24086 295
range last200 35593 34264 21830 292
range last1000 4285 4270 4336 277

 

redis

操作 1w 10w 100w 1000w
insert 29401 30929 29109 30278
range first100 1443 1384 1396 1339
range first200 667 641 636 655
range first1000 114 115 114 115
range last100 1584 229 19 2
range last200 696 220 19 2
range last1000 114 142 19 2

 

mysql

操作 1w 10w 100w 1000w
insert 13704 12786 12087 11023
range first100 2011 2059 2015 2387
range first200 1637 1768 1854 1614
range first1000 654 641 648 631
range last100 91 8 1 -
range last200 96 9 1 -
range last1000 91 8 1 -

 

上面的 - 表示时间太长,数百秒也没有结果。

4. 10个客户端,并发短连接

Memlink内部开启4个处理线程。仅c客户端测试。

操作 1w 10w 100w 1000w
insert 9665 9650 10078 10183
range first100 17400 17504 16614 17292
range first200 15786 15772 15964 16180
range first1000 3795 3918 3703 3250
range last100 16989 16502 13118 319
range last200 15915 15596 12203 316
range last1000 3893 3641 3332 299

 

redis

操作 1w 10w 100w 1000w
insert 9381 9489 8993 8976
range first100 1695 1637 1696 1586
range first200 711 711 719 692
range first1000 118 115 116 114
range last100 2132 240 20 2
range last200 743 229 20 2
range last1000 120 174 19 2

 

mysql

操作 1w 10w 100w 1000w
insert 5623 5621 5468 5306
range first100 2210 2286 1955 1611
range first200 1444 1791 1870 1402
range first1000 550 692 620 686
range last100 80 8 1 -
range last200 94 9 1 -
range last1000 94 9 1 -

 


分享到:
评论
1 楼 231fuchenxi 2013-08-01  
你好,有redis,memlink,mysql的测试代码吗?可以发一份给我吗?谢谢231fuchenxi@163.com

相关推荐

    Memlink是一个高性能、持久化、分布式的Key=>List/Queue数据引擎

    Memlink是一个高性能、持久化、分布式的Key=>List/Queue数据引擎。正如名称中的Mem所示,所有数据都建构在内存中,保证了系统的高性能,同时使用块链进行内存压缩,使用redo-log技术保证数据的持久化。此外,Memlink...

    天涯社区开源的NoSQL数据库 Memlink.zip

    Memlink是天涯社区开发的一个高性能、持久化、分布式的Key-list/queue数据引擎。正如名称中的memlink所示,所有数据都 建构在内存中,保证了系统的高性能 (大约是redis几倍),同时使用了redo-log技术保证数据的持久...

    memLink.rar

    Memlink是天涯社区开发的一个高性能、持久化、分布式的Key-list/queue数据引擎。正如名称中的memlink所示,所有数据都建构在内存中,保证了系统的高性能 (大约是redis几倍),同时使用了redo-log技术保证数据的持久化...

    Java 员工管理系统项目源代码(可做毕设项目参考)

    Java 员工管理系统项目是一个基于 Java 编程语言开发的桌面应用程序,旨在管理员工的信息、津贴、扣除和薪资等功能。该系统通过提供结构和工具集,使公司能够有效地管理其员工数据和薪资流程。 系统特点 员工管理:管理员可以添加、查看和更新员工信息。 津贴管理:管理员可以添加和管理员工的津贴信息。 扣除管理:管理员可以添加和管理员工的扣除信息。 搜索功能:可以通过员工 ID 搜索员工详细信息。 更新薪资:管理员可以更新员工的薪资信息。 支付管理:处理员工的支付和生成支付记录。 模块介绍 员工管理模块:管理员可以添加、查看和更新员工信息,包括员工 ID、名字、姓氏、年龄、职位和薪资等。 津贴管理模块:管理员可以添加和管理员工的津贴信息,如医疗津贴、奖金和其他津贴。 扣除管理模块:管理员可以添加和管理员工的扣除信息,如税收和其他扣除。 搜索功能模块:可以通过员工 ID 搜索员工详细信息。 更新薪资模块:管理员可以更新员工的薪资信息。 支付管理模块:处理员工的支付和生成支付记录 可以作为毕业设计项目参考

    CAD实验报告:制药车间动力控制系统图、烘烤车间电气控制图、JSJ型晶体管式时间继电器原理图、液位控制器电路图

    CAD实验报告:制药车间动力控制系统图、烘烤车间电气控制图、JSJ型晶体管式时间继电器原理图、液位控制器电路图

    使用 Arduino 和 Python 实时数据绘图的温度监控系统源码(可做毕设项目参考)

    项目简介: 本项目将教您如何使用 Arduino 和 Python 实时数据绘图来构建温度监控系统。通过这个项目,您将学习如何从 Arduino 到 Python 进行串行通信,并实时收集和监控温度数据。 项目目标: 实时监控和绘制温度数据。 提供用户友好的操作界面。 提高用户的编程技能,特别是Arduino和Python的应用能力。 项目功能 实时温度监控: 传感器每秒读取一次温度数据,并通过串行监视器发送到Python程序。 数据保存: Python程序将温度数据保存到CSV文件中。 实时数据绘图: 使用Matplotlib库实时绘制温度数据,温度在Y轴,时间在X轴。 项目优势 高效的数据监控: 实时监控和绘制温度数据,提高数据监控的效率。 用户友好: 界面简洁,操作简单,用户可以轻松使用该应用程序。 提高编程技能: 通过实践项目,提高对Arduino和Python的应用能力。 项目技术细节 项目详情: 项目名:使用 Arduino 和 Python 实时数据绘图的温度监控系统 项目平台:Arduino 和 Python 使用的编程语言:C++(Arduino)、Python ID

    软件测试-软件测试方案pdf

    本测试计划提供给深圳移动公司PMS核心小组成员,对PMS EXPRESS 系统进行功能测试。测试计划主要通过对基站项目管理过程的模拟,从项目的立项开始直至基站的验收交付以及知识沉淀,对基站建设全过程中涉及的管理内容进行模拟测 试。测试计划中设计了两个基站项目一明宁花园、椰风海岸。其中明宁花园按 原计划如期完工,而椰风海岸因为设备没能如期到货导致了个整个项目工期的延误。

    博物馆智能化系统的解决方案.pptx

    博物馆智能化系统的解决方案.pptx

    基于STM32的电子罗盘

    基于STM32的电子罗盘试验

    【matlab GUI仿真】说明:GUI界面设计,四旋翼飞机仿真 VR界面设计

    【matlab GUI仿真】说明:GUI界面设计,四旋翼飞机仿真。VR界面设计。 (GUI interface design, four rotor aircraft simulation. The VR interface design. ) 【matlab GUI仿真】说明:GUI界面设计,四旋翼飞机仿真。VR界面设计。

    基于VHDL的倒车雷达项目(免费提供全部源码)

    项目简介: 本项目实现了一个基于VHDL(VHSIC硬件描述语言)的倒车雷达系统。倒车雷达用于检测车辆后方障碍物的距离,以辅助驾驶员安全倒车。系统通过超声波传感器检测距离,并使用LED显示或蜂鸣器提示障碍物的接近程度。 项目模块: 传感器接口模块: 处理超声波传感器的信号。 发送触发信号,接收回波信号。 计算回波时间,进而计算距离。 距离计算模块: 根据传感器回波时间计算距离。 处理和转换距离数据,准备用于显示和警报。 警报显示模块: 基于计算出的距离提供视觉和听觉警报。 使用LED显示不同的距离范围。 使用蜂鸣器发出不同频率的警报声。 控制模块: 控制各模块的协调工作。 管理超声波传感器的触发和数据采集周期。

    2024年动力电池回收行业市场分析报告.pptx

    行业报告

    ssm框架在线课堂微信小程序源码+项目说明(高分毕设)

    毕业设计ssm框架在线课堂微信小程序源码+项目说明(高分毕设).zip 个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 毕业设计ssm框架在线课堂微信小程序源码+项目说明(高分毕设).zip 个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 毕业设计ssm框架在线课堂微信小程序源码+项目说明(高分毕设).zip 个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 项目主要功能: 该项目是一款针对在线课堂微信小程序的数据管理系统,旨在便捷用户对小程序中的信息进行有效管理。系统设计注重功能完善和用户体验,力求使用户能轻松找到所需信息。采用JAVA技术开发,并结合现有成熟源代码模板,确保了平台的可操作性和实用性。关键词:在线课堂微信小程序;JAVA。

    国内锂矿加速开发,四川锂矿详细梳理

    国内锂矿加速开发,四川锂矿详细梳理

    一个基于react框架的资源文件

    一个基于react框架的资源文件 练习,xiaoyoushop分支是小优后台,screen分支是大屏项目,react分支是基于react框架,使用ts语言,vite构建的一个后台管理系统项目 练习,xiaoyoushop分支是小优后台,screen分支是大屏项目,react分支是基于react框架,使用ts语言,vite构建的一个后台管理系统项目 练习,xiaoyoushop分支是小优后台,screen分支是大屏项目,react分支是基于react框架,使用ts语言,vite构建的一个后台管理系统项目 内容来源于网络分享。仅供学习使用。请勿商用。如有侵权,请联系我。我将立即删除

    MQD企业大学建设思路与年度工作重点.pptx

    MQD企业大学建设思路与年度工作重点.pptx

    Java语言基础入门教程 Java实训教程 13.反射 共38页.pptx

    Java语言基础入门教程 Java实训教程 13.反射 共38页.pptx

    网上购物商城数据库设计报告.docx

    网上购物商城数据库设计报告.docx

    单机成本核算统计表.docx

    单机成本核算统计表.docx

    Swift语言简介.md

    Swift 是由苹果公司推出的一种现代化的编程语言,用于开发 iOS、macOS、watchOS 和 tvOS 应用程序。它结合了安全、高性能和易用性的特点,成为开发苹果平台应用程序的首选语言。

Global site tag (gtag.js) - Google Analytics