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之外,並不能挖掘到更多的信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章