mysql 性能测试 参照

Introduction

Memlink用于存储Key=>List数据,下面对比了不同数据存储引擎存储存储Key=>List数据的性能和内存开销。压力测试分为:客户端有长连接和短链接、N个并发数执行M个查询、在不同数据规模下等多种组合测试。

Details

硬件

OS:CentOS release 4.6 (Final) 内核:2.6.9-67.0.22.ELsmp 32位

内存: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客户端,另一组使用redis自带的redis-benchmark。用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

下面的测试结果中,红色为memlink绿色为redis蓝色为mysql

内存消耗测试

 初始内存1w10w100w1000w
memlink4764K5032K6628K18M139M
redis1060K1920K9044K78M771M

访问性能测试

1. 一个客户端,长连接

 1w10w100w1000w
insertmemlinkc:16296

py:12558

php:12153

c:14125

py:12565

php:12144

c:13868

py: 13096

php: 12521

c:13187

py:12611

php:12124

hiredis15183

14997

14828

14788

redis15673157431559415304
mysql1089110297100229718
range first100memlinkc:10874

py:8275

php:9185
c:11429

py:8273

php:9171
c:10994

py:8068

php:9136
c:11663

py:8256

php:10071
hiredis1328132913241332
redis4237458743104347
mysql1550156315591307
range first200memlinkc:8045

py:6015

php:6544
c:8041

py:6017

php:6545
c:7863

py:5941

php:6542
c:7970

py:6024

php:7010
hiredis708709705709
redis2631277726662631
mysql956954956941
range first1000memlinkc:1362

py:1446

php:1466
c:1362

py:1448

php:1468
c:1354

py:1440

php:1462
c:1362

py:1444

php:1492
hiredis147148148147
redis646666652636
mysql230230230235
range last100memlinkc:11153

py:8137

php:8996
c:10318

py:7526

php:8263
c:5519

py:4410

php:4691
c:112

py:97

php:97
hiredis1221212192
redis3289197191.97
mysql3130.30.04
range last200memlinkc:7938

py:5956

php:6461
c:7515

py:5629

php:6078
c:4615

py:3688

php:3899
c:111

py:96

php:97
hiredis675184192
redis2237188191.97
mysql3130.30.04
range last1000memlinkc:1358

py:1442

php:1458
c:1345

py:1421

php:1440
c:1209

py:1251

php:1272
c:103

py:91

php:91
hiredis14792172
redis615143191.97
mysql3030.30.03

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

 1w10w100w1000w
insertmemlinkc:6560

py:6138

php:6064

c:6466

py:5990

php:5986

c:6675

py:6092

php:6010

c:6719

py:6012

php:6003

hiredis10891102971023310135
redis6134585560725995
mysql3313325131083001
range first100memlinkc:5467

py:4535

php:5064
c:5472

py:4450

php:4944
c:5662

py:4495

php:4712
c:5484

py:4475

php:4779
hiredis1058117211661163
redis3058305831253333
mysql92311581031885
range first200memlinkc:4533

py:3746

php:4124
c:4563

py:3693

php:4049
c:4709

py:3724

php:3893
c:4567

py:3708

php:3931
hiredis654651669667
redis2150215922222272
mysql815823783743
range first1000memlinkc:1206

py:1254

php:1291
c:1200

py:1249

php:1285
c:1215

py:1253

php:1263
c:1202

py:1250

php:1266
hiredis146145145144
redis626627636641
mysql227230226212
range last100memlinkc:5468

py:4451

php:4970
c:5229

py:4233

php:4692
c:3763

py:3055

php:3155
c:110

py:96

php:96
hiredis994271323
redis2531189191.97
mysql2030.210.02
range last200memlinkc:4558

py:3692

php:4053
c:4355

py:3545

php:3886
c:3323

py:2680

php:2790
c:110

py:95

php:96
hiredis630233323
redis1879182191.97
mysql3030.30.04
range last1000memlinkc:1198

py:1247

php:1284
c:1191

py:1226

php:1267
c:1096

py:1093

php:1125
c:102

py:91

php:91
hiredis144104273
redis602141191.96
mysql3030.30.03

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

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

 1w10w100w1000w
insertmemlink23021222102220022242
hiredis29401309292910930278
redis32571336923366532945
mysql13704127861208711023
range first100memlink45451534635564548283
hiredis1443138413961339
redis7042714270926666
mysql2011205920152387
range first200memlink23768339663504535417
hiredis667641636655
redis3816381638463571
mysql1637176818541614
range first1000memlink4269430542814271
hiredis114115114115
redis811812815781
mysql654641648631
range last100memlink537194894824086295
hiredis1584229192
redis4694197191.82
mysql9181-
range last200memlink355933426421830292
hiredis696220192
redis3039188191.75
mysql9691-
range last1000memlink428542704336277
hiredis114142192
redis772149181.75
mysql9181-

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

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

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

操作 1w10w100w1000w
insertmemlink966596501007810183
hiredis9381948989938976
redis9285929092878835
mysql5623562154685306
range first100memlink17400175041661417292
hiredis1695163716961586
redis4629458745044545
mysql2210228619551611
range first200memlink15786157721596416180
hiredis711711719692
redis2941294929412857
mysql1444179118701402
range first1000memlink3795391837033250
hiredis118115116114
redis761739761735
mysql550692620686
range last100memlink169891650213118319
hiredis2132240202
redis4385191192
mysql8081-
range last200memlink159151559612203316
hiredis743229202
redis2941182192
mysql9491-
range last1000memlink389336413332299
hiredis120174192
redis756149182
mysql9491-


https://www.oschina.net/question/12_18406

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值