nosqlredis數(shù)據(jù)庫(kù)壓力測(cè)試基準(zhǔn)工具redis-benchmark怎么用

這篇文章將為大家詳細(xì)講解有關(guān)NOSQL redis數(shù)據(jù)庫(kù)壓力測(cè)試基準(zhǔn)工具redis-benchmark怎么用,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都服務(wù)器托管,創(chuàng)新互聯(lián)建站提供包括服務(wù)器租用、資陽(yáng)移動(dòng)機(jī)房、帶寬租用、云主機(jī)、機(jī)柜租用、主機(jī)租用托管、CDN網(wǎng)站加速、域名注冊(cè)等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:18982081108

1,查看基準(zhǔn)測(cè)試工具的用法
[root@langfang src]# pwd
/redis_dir/redis-4.0.9/src
[root@langfang src]# ./redis-benchmark  -help
Invalid option "-help" or option argument missing


Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests>] [-k <boolean>]


 -h <hostname>      Server hostname (default 127.0.0.1) -h 連接REDIS服務(wù)器IP,默認(rèn)為127.0.0.1
 -p <port>          Server port (default 6379)    -P REDIS服務(wù)器端口 ,默認(rèn)為6379
 -s <socket>        Server socket (overrides host and port)  -S 服務(wù)器套接字(覆蓋主機(jī)和端口)
 -a <password>      Password for Redis Auth --A REDIS AUTH的認(rèn)證密碼
 -c <clients>       Number of parallel connections (default 50)  --c 表示并發(fā)連接數(shù)量,默認(rèn)50個(gè)
 -n <requests>      Total number of requests (default 100000)  ---n 請(qǐng)求的總數(shù)量,默認(rèn)為100000,即10萬(wàn)
 -d <size>          Data size of SET/GET value in bytes (default 3) --D 表示SET GET的大小,默認(rèn)大小為3
 --dbnum <db>       SELECT the specified db number (default 0)  --dbnum 指定連接哪個(gè)數(shù)據(jù)庫(kù),默認(rèn)為0號(hào)數(shù)據(jù)庫(kù)
 -k <boolean>       1=keep alive 0=reconnect (default 1)  -k 布爾類型,1為保持連接,默認(rèn)值;0為重連
 -r <keyspacelen>   Use random keys for SET/GET/INCR, random values for SADD --r 為SET GET INCR操作使用隨機(jī)的鍵,為SADD使用隨機(jī)值
  Using this option the benchmark will expand the string __rand_int__
  inside an argument with a 12 digits number in the specified range
  from 0 to keyspacelen-1. The substitution changes every time a command
  is executed. Default tests use this to hit random keys in the
  specified range.
 -P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline).  --P 與管道技術(shù)有關(guān),請(qǐng)求的次數(shù),默認(rèn)為1,即禁用管道技術(shù),假如服務(wù)器報(bào)錯(cuò),顯示報(bào)錯(cuò)信息
 -e                 If server replies with errors, show them on stdout.  
                    (no more than 1 error per second is displayed) --僅僅每秒顯示1個(gè)報(bào)錯(cuò)
 -q                 Quiet. Just show query/sec values  -Q 安靜,僅僅顯示 每秒 查詢值
 --csv              Output in CSV format --CSV 以CSV格式輸出
 -l                 Loop. Run the tests forever -L 一直壓測(cè),不停止
 -t <tests>         Only run the comma separated list of tests. The test -T   -L 運(yùn)行以 逗 號(hào)分隔的測(cè)試列表,指定具體的壓力測(cè)試場(chǎng)景,比如是set or mget or get and so on
                    names are the same as the ones produced as output.
 -I                 Idle mode. Just open N idle connections and wait. --L 空閑模式,只是打開(kāi)N個(gè)空閑連接然后等待


Examples: ---示例


 Run the benchmark with the default configuration against 127.0.0.1:6379:
   $ redis-benchmark


 Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1:
   $ redis-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20


 Fill 127.0.0.1:6379 with about 1 million keys only using the SET test:
   $ redis-benchmark -t set -n 1000000 -r 100000000


 Benchmark 127.0.0.1:6379 for a few commands producing CSV output:
   $ redis-benchmark -t ping,set,get -n 100000 --csv


 Benchmark a specific command line:
   $ redis-benchmark -r 10000 -n 10000 eval 'return redis.call("ping")' 0


 Fill a list with 10000 random elements:
   $ redis-benchmark -r 10000 -n 10000 lpush mylist __rand_int__


 On user specified command lines __rand_int__ is replaced with a random integer
 with a range of values selected by the -r option.
[root@langfang src]# 










2,redis-benchmark默認(rèn)壓力測(cè)試
--壓力測(cè)試結(jié)論包括  壓力測(cè)試消耗時(shí)間及每秒最大處理的請(qǐng)求數(shù)以及各種的壓力測(cè)試場(chǎng)景的不同子節(jié)
[root@langfang src]# ./redis-benchmark 
====== PING_INLINE ======    ---概述的名稱
  100000 requests completed in 1.51 seconds  --概要結(jié)論,消耗 1.51秒 完成 10萬(wàn)次請(qǐng)求
  50 parallel clients
  3 bytes payload
  keep alive: 1


96.26% <= 1 milliseconds
99.96% <= 2 milliseconds
100.00% <= 2 milliseconds
66181.34 requests per second   --每秒完成 6.6萬(wàn)左右請(qǐng)求


====== PING_BULK ======
  100000 requests completed in 1.70 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


93.00% <= 1 milliseconds
99.98% <= 2 milliseconds
100.00% <= 2 milliseconds
58788.95 requests per second


====== SET ======
  100000 requests completed in 1.69 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


92.51% <= 1 milliseconds
99.95% <= 2 milliseconds
100.00% <= 2 milliseconds
59241.71 requests per second


====== GET ======
  100000 requests completed in 1.53 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


96.22% <= 1 milliseconds
99.97% <= 2 milliseconds
100.00% <= 2 milliseconds
65402.22 requests per second


====== INCR ======
  100000 requests completed in 1.55 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


95.60% <= 1 milliseconds
100.00% <= 2 milliseconds
100.00% <= 2 milliseconds
64683.05 requests per second


====== LPUSH ======
  100000 requests completed in 1.52 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


94.17% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 2 milliseconds
65573.77 requests per second


====== RPUSH ======
  100000 requests completed in 1.57 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


94.06% <= 1 milliseconds
99.97% <= 2 milliseconds
100.00% <= 2 milliseconds
63734.86 requests per second


====== LPOP ======
  100000 requests completed in 1.51 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


94.25% <= 1 milliseconds
99.98% <= 2 milliseconds
100.00% <= 2 milliseconds
66269.05 requests per second


====== RPOP ======
  100000 requests completed in 1.52 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


95.01% <= 1 milliseconds
99.95% <= 2 milliseconds
100.00% <= 2 milliseconds
65919.58 requests per second



====== LPUSH (needed to benchmark LRANGE) ======
  100000 requests completed in 1.50 seconds
  50 parallel clients




====== LRANGE_500 (first 450 elements) ======
  100000 requests completed in 10.29 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


3.16% <= 1 milliseconds
22.80% <= 2 milliseconds
46.08% <= 3 milliseconds
65.75% <= 4 milliseconds
81.96% <= 5 milliseconds
94.78% <= 6 milliseconds




====== MSET (10 keys) ======
  100000 requests completed in 2.06 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


57.05% <= 1 milliseconds
98.41% <= 2 milliseconds
99.98% <= 3 milliseconds
100.00% <= 3 milliseconds
48567.27 requests per second




[root@langfang src]# 




3,還是各種壓測(cè)場(chǎng)景,不過(guò)是20個(gè)并發(fā),10萬(wàn)次請(qǐng)求,連接指定REDIS服務(wù)器
[root@langfang src]# ./redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 20
====== PING_INLINE ======
  100000 requests completed in 1.63 seconds
  20 parallel clients
  3 bytes payload
  keep alive: 1


99.69% <= 1 milliseconds
100.00% <= 1 milliseconds
61312.08 requests per second


====== PING_BULK ======
  100000 requests completed in 1.67 seconds
  20 parallel clients
  3 bytes payload
  keep alive: 1




4,指定測(cè)試場(chǎng)景比如 GET AND SET 以及隨機(jī)鍵的數(shù)量以及請(qǐng)求個(gè)數(shù)
[root@langfang src]# ./redis-benchmark  -t set,get -n 100000 -r 1000
====== SET ======
  100000 requests completed in 1.60 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


94.68% <= 1 milliseconds
99.93% <= 2 milliseconds
100.00% <= 2 milliseconds
62656.64 requests per second


====== GET ======
  100000 requests completed in 1.68 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


93.91% <= 1 milliseconds
99.93% <= 2 milliseconds
100.00% <= 2 milliseconds
59488.40 requests per second




5,csv格式輸出
[root@langfang src]# ./redis-benchmark -t ping,get,set -n 1000 --csv
"PING_INLINE","52631.58"
"PING_BULK","55555.56"
"SET","52631.58"
"GET","52631.58"


6,運(yùn)行特定的命令行
[root@langfang src]# ./redis-benchmark  -r 1000 -n 100000 eval 'return redis.call("ping")'
====== eval return redis.call("ping") ======
  100000 requests completed in 1.56 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


95.66% <= 1 milliseconds
99.93% <= 2 milliseconds
100.00% <= 2 milliseconds
63979.53 requests per second




7, Fill a list with 10000 random elements  以隨機(jī)指定的范圍元素填充list
[root@langfang src]# ./redis-benchmark  -r 10000 -n 1000 lpush mylist _rand_init__
====== lpush mylist _rand_init__ ======
  1000 requests completed in 0.02 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


87.20% <= 1 milliseconds
99.50% <= 2 milliseconds
100.00% <= 2 milliseconds
47619.05 requests per second




[root@langfang src]# ./redis-benchmark  -r 10000 -n 1000 set mylist _rand_init__
====== set mylist _rand_init__ ======
  1000 requests completed in 0.02 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


86.40% <= 1 milliseconds
100.00% <= 1 milliseconds
47619.05 requests per second




8,靜默方式壓力測(cè)試
[root@langfang src]# ./redis-benchmark  -t set,get -n 100000 -r 1000
====== SET ======
  100000 requests completed in 1.58 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


94.99% <= 1 milliseconds
99.96% <= 2 milliseconds
100.00% <= 2 milliseconds
63211.12 requests per second


====== GET ======
  100000 requests completed in 1.60 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


95.21% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 2 milliseconds
62617.41 requests per second


--可見(jiàn)靜默方式只顯示每次處理的請(qǐng)求數(shù)以及壓力測(cè)試場(chǎng)景
[root@langfang src]# ./redis-benchmark  -t set,get -n 100000 -r 1000 -q
SET: 63091.48 requests per second
GET: 64724.92 requests per second




9,redis-cli可以直接附上操作命令
[root@langfang src]# ./redis-cli flushall
OK
[root@langfang src]# ./redis-cli dbsize
(integer) 0
[root@langfang src]# 




10,--r表示產(chǎn)生的隨機(jī)鍵的數(shù)量,數(shù)量大可以模擬 鍵不命中情況
[root@langfang src]# ./redis-cli dbsize
(integer) 0
[root@langfang src]# ./redis-benchmark  -t set -r 8888 -n 100000
====== SET ======
  100000 requests completed in 1.61 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1


94.16% <= 1 milliseconds
99.93% <= 2 milliseconds
99.95% <= 3 milliseconds
100.00% <= 3 milliseconds
62305.30 requests per second




[root@langfang src]# ./redis-cli dbsize
(integer) 8888
[root@langfang src]# 




11,默認(rèn)情況是處理1個(gè)請(qǐng)求然后順序接著處理下1個(gè)請(qǐng)求,但可以通過(guò)-P 管道技術(shù),并發(fā)處理多個(gè)請(qǐng)求,下述效果非常明顯,成9倍左右的差異
(同時(shí)處理多條命令需要PIPELINE管道技術(shù))


[root@langfang src]# ./redis-benchmark -t get,set -n 100000 -q
SET: 64516.13 requests per second
GET: 64516.13 requests per second






[root@langfang src]# ./redis-benchmark -t get,set -n 100000 -P 16 -q
SET: 452488.69 requests per second
GET: 529100.56 requests per second

關(guān)于“nosql redis數(shù)據(jù)庫(kù)壓力測(cè)試基準(zhǔn)工具redis-benchmark怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

名稱欄目:nosqlredis數(shù)據(jù)庫(kù)壓力測(cè)試基準(zhǔn)工具redis-benchmark怎么用
本文URL:http://muchs.cn/article8/ijscip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化、企業(yè)建站、響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站