Redis QPS測試


1、計算qps:

1)redis發布版本中自帶了redis-benchmark性能測試工具,可以使用它計算qps。示例:使用50個並發連接,發出100000個請求,每個請求的數據為2kb,測試host為127.0.0.1端口為6379的redis服務器性能:

./redis-benchmark -h127.0.0.1 -p 6379 -c 50 -n 100000 -d 2

...

====== SADD ======

  100000 requests completed in 2.27 seconds

  500 parallel clients

  3 bytes payload

  keep alive: 1

 

4.66% <= 1milliseconds

14.15% <= 2milliseconds

23.87% <= 3milliseconds

33.59% <= 4milliseconds

43.13% <= 5milliseconds

52.69% <= 6milliseconds

62.08% <= 7milliseconds

71.43% <= 8milliseconds

80.66% <= 9milliseconds

89.10% <= 10milliseconds

95.23% <= 11milliseconds

98.76% <= 12milliseconds

99.59% <= 13milliseconds

99.78% <= 14milliseconds

99.87% <= 15milliseconds

99.95% <= 16milliseconds

99.99% <= 17milliseconds

100.00% <= 17milliseconds

44150.11 requestsper second

我們關注結果最后一行:每秒44150.11個請求,既QPS4.4萬;但這里的數據都只是測試數據,測出來的QPS不能代表實際生產的處理能力;

 

2)測算redis處理實際生產請求的QPS/TPS

在實際生產中,我們需要關心這個指標,在我們的應用場景中,redis能夠處理的最大的(QPS/TPS)是多少?測量redisQPS的方式有兩種:

估計生產的報文大小,使用benchmark工具指定-d數據塊大小來模擬;
使用redis-cli中info統計信息計算差值;redis-cli的info命令中有一項total_commands_processed表示:從啟動到現在處理的所有命令總數,可以通過統計兩次info指令間的差值來計算QPS:
 

watch -n 60'redis-cli -a MROhwkCyaGZbCrMTLAg2  info|grep total_commands_processe >> qps2.txt && date >>qps2.txt'

 

把每分鍾的total_commands_processe記錄到qps2.txt,打上時間戳得到數據兩兩相減,除以60秒。

 

注意:這個實時數據,存在波峰波谷,要采樣幾次,每次一段時間,這樣才比較准。所以,一般使用下面命令

nohup watch -n 60'redis-cli -a MROhwkCyaGZbCrMTLAg2  info|grep total_commands_processe >> qps2.txt && date >>qps2.txt' > log 2>&1 &

 


2、內存使用情況:

redis是內存數據庫,直接看info里的相關參數即可


used_memory:832784 # Redis 分配的內存總量 
used_memory_human:813.27K 
used_memory_rss:1896448 # Redis 分配的內存總量(包括內存碎片) 
used_memory_peak:832760  
used_memory_peak_human:813.24K #Redis所用內存的高峰值

 

3、redis連接數:

redis是內存數據庫,直接看info里的相關參數即可

# Clients
connected_clients:28


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM