memcacheq测试报告

MemcacheQ 测试报告

硬件环境:

CPU: Intel(R) Xeon(R) CPU  E5410  @2.33GHz 双核

内存:2G

操作系统: Red Hat EnterpriseLinux Server release 5.3 (Tikanga)

 

启动命令:

memcacheq -d -r -u co_test -p 21201 -H/home/co_test/memcacheq/data -N -v -L 1024 -B 1024 > /home/co_test/memcacheq/logs/mq_error.log2>& 1

 

只set 数据的情况:

字符大小:256字节

数据文件以1.75GB的数据增长

发送前是否清空

发送前是否重启

压测线程数(连接数)

压测每线程操作次数

总用时

平均每秒

load average(MAX)

CPU%(最大值)

内存(稳定值)

10

100000

263.721

3791.8861

0.57, 0.21, 0.08

15

128756

10

100000

266.307

3755.0646

0.67, 0.21, 0.08

12.3

129112

10

100000

262.341

3811.8327

0.39, 0.17, 0.09

32.3

128756

20

50000

292.535

3418.3944

1.10, 0.40, 0.14

14.3

129132

20

50000

301.095

3321.2109

0.64, 0.22, 0.11

34.7

129028

25

40000

286.092

3495.3791

0.48, 0.15, 0.05

15.3

129276

25

40000

307.965

3247.1222

0.49, 0.18, 0.06

12.3

129276

40

25000

288.325

3468.3083

0.57, 0.24, 0.09

12.3

129080

40

25000

309.369

3232.3859

0.62, 0.22, 0.08

51.6

129236

50

20000

302.399

3306.8892

0.48, 0.14, 0.07

18.7

128416

50

20000

289.35

3456.0221

0.34, 0.09, 0.03

13.7

129496

5

200000

273.966

3650.088

0.64, 0.33, 0.12

13.3

129496

5

200000

274.553

3642.284

0.65, 0.28, 0.11

16

129208

1

1000000

337.448

2963.4195

0.41, 0.17, 0.20

10

128808

1

1000000

339.209

2948.035

0.51, 0.20, 0.15

10.3

128928

 

第9次的stats命令结果:

stats

STAT pid 30515

STAT uptime 6782

STAT time 1299387607

STAT version 0.2.0

STAT pointer_size 64

STAT rusage_user 11.552722

STAT rusage_system 14.424901

STAT curr_connections 5

STAT total_connections 87

STAT connection_structures 46

STAT get_cmds 0

STAT get_hits 0

STAT set_cmds 2000000

STAT set_hits 2000000

STAT bytes_read 570000034

STAT bytes_written 16001152

STAT threads 4

END

 

 

只get 数据的情况:

数据文件以100MB-200MB的数据减少

压测线程数(连接数)

压测每线程操作次数

总用时

平均每秒

10

100000

113.727

8792.9867

10

100000

106.166

9419.2114

20

50000

130.378

7670.0057

20

50000

116.046

8617.2725

25

40000

127.295

7855.7681

25

40000

122.529

8161.3332

40

25000

142.626

7011.3444

40

25000

132.994

7519.1362

50

20000

145.906

6853.7277

50

20000

141.735

7055.4203

100

10000

83.735

11942.4375

100

10000

144.978

6897.5983

5

200000

107.44

9307.5205

5

200000

104.144

9602.0894

1

1000000

213

4694.8357

 

第7次的stats的命令结果:

stats

STAT pid 12213

STAT uptime 41695

STAT time 1299379865

STAT version 0.2.0

STAT pointer_size 64

STAT rusage_user 193.500093

STAT rusage_system 119.579473

STAT curr_connections 5

STAT total_connections 250

STAT connection_structures 46

STAT get_cmds 7000000

STAT get_hits 7000000

STAT set_cmds 4000000

STAT set_hits 4000000

STAT bytes_read 1245000718

STAT bytes_written 2062009860

STAT threads 4

END

 

 

Set/get同时的情况:

字符大小:256字节

数据文件以1.5GB左右的数量增长

次数

set压测线程数(连接数)

set压测每线程操作次数

set总用时

set平均每秒

get压测线程数(连接数)

get压测每线程操作次数

get总用时

get平均每秒

1

2

500000

330.398

3026.6527

1

1000000

373.059

2680.5411

2

4

250000

325.536

3071.8569

2

500000

315.817

3166.3907

3

5

200000

379.681

2633.7899

4

250000

331.266

3018.7221

4

8

125000

348.767

2867.2437

5

200000

316.703

3157.5325

5

10

100000

379.064

2638.0769

8

125000

327.748

3051.1246

6

20

50000

349.725

2859.3895

10

100000

327.592

3052.5776

7

25

40000

404.956

2469.4041

20

50000

356.22

2807.2539

8

40

25000

413.067

2420.9148

25

40000

377.16

2651.3946

9

50

20000

450.61

2219.2140

40

25000

401.931

2487.9892

10

80

12500

450.634

2219.0958

50

20000

421.922

2370.1063

11

100

10000

468.383

2135.0049

80

12500

420.243

2379.5756

 

第2次stats结果:

 

stats

STAT pid 20984

STAT uptime 9211

STAT time 1300018069

STAT version 0.2.0

STAT pointer_size 64

STAT rusage_user 17.593099

STAT rusage_system 23.797487

STAT curr_connections 5

STAT total_connections 16

STAT connection_structures 11

STAT get_cmds 2000000

STAT get_hits 2000000

STAT set_cmds 2000000

STAT set_hits 2000000

STAT bytes_read 600000025

STAT bytes_written 596000370

STAT threads 4

END

 

 

结论:

1.      memcacheq采用的是memcached协议,由于需要写文件,所以set效率比不上memcached,get效率也比memcached降低了3-4倍;

2.      memcacheq安装和使用上还是比较简单的,测试过程中也没有出现过服务端挂掉的现象,只是生成的日志文件过大,每100万条256字节的消息要占用近1.75GB的磁盘,测试不了几次就会占满磁盘的10G空间导致客户端程序报错,而此时memcacheq服务依然正常;

3.      get数据并不能减小持久化文件的大小,重启后持久化文件也不会变小,即使所有消息都出队列,持久化文件仍然存在,且占用空间较大,基本上为每100万次256字节的入和出的处理后,会增加1.5-1.6G的持久化数据量;

4.      memcacheq重启过程中不会重建索引文件,所以不会产生重启的效率问题;

5.      在磁盘空间足够大的情况下,memcacheq还是一个比较不错的选择,只是需要定期的手动清空或通过flush的命令进行清空。

6.      Memcacheq的缺点是其资料较少,使用也不太广泛,除了从官网那一个页面有安装和配置的信息和知道其持久化是采用的Berkeley之外,并不能挖掘到更多的信息。

你可能感兴趣的:(memcacheq测试报告)