一、計算qps:redis
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: 1requests
4.66% <= 1millisecondscli
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 &
二、內存使用狀況:
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所用內存的高峯值
三、redis鏈接數:
redis是內存數據庫,直接看info裏的相關參數便可
# Clientsconnected_clients:28