Redis5 壓力測試結果反饋報告

netcore開發發表於2020-12-12

Redis 相信很多人都用過了,關於效能啥的,網上一堆報告,閒得蛋痛,又隨便測測寫寫一些狗屁文章,來刷存在感了。

安裝最新Redis5.0.10

Redis 官方地址

下載頁預設是redis6.0,5.0版本在下面“other versions”,因為redis6.0 架構上做了很大的調整,線上伺服器是centos7.8並且是內網狀態,在不聯網的情況下根本無法部署6.0(簡直就是惡夢),業務還是5.0版本,那麼這裡就測試5.0版本。

按著官方的操著方式成功安裝redis5.0

測試前配置準備

先看看伺服器配置,CPU型號是:Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz

先試官方提供的壓測工具,在redis目錄下面,redis-benchmark

 相關的指令如下圖

 為了使得資料更真實,分別準備了兩臺伺服器,Redis 伺服器:192.168.3.40 ,壓測伺服器是:192.168.3.138 ,本次測試是基於單機測試,非叢集

開始SET,Get,Lpush 常規測試

Set 測試

./redis-benchmark -h 192.168.3.40 -p 6379 -t set -n 1000000
./redis-benchmark -h 192.168.3.40 -p 6379 -t set -c 100 -n 1000000

上面兩句程式碼分別是進行 1000000 次 Set 請求,使用預設大小(3 個位元組),第一行預設使用50併發,第二行指定100併發數。

 可以看到,這臺Redis伺服器的效能上限就是9W/s 的處理速度,當然REDIS的速度更多的是受限於記憶體的速率和網路IO,而並非CPU的影響。 

 從上面的資料來看,併發客戶端從50升到100個,並沒有很顯著的提高效能,但是並不是意味著多個客戶端並不能有效的提高處理速度。

把客戶端併發數調整為10的時候,可以明顯看到處理的速度變慢了。

接下來將測試不同的客戶端併發數下,CPU和網路的變化情況

./redis-benchmark -h 192.168.3.40 -p 6379 -t set -c 5  -n 100000000
./redis-benchmark -h 192.168.3.40 -p 6379 -t set -c 50  -n 100000000
./redis-benchmark -h 192.168.3.40 -p 6379 -t set -c 100  -n 100000000

 

 三者的處理速度分別是:3.8W/S , 10W/S , 8.6W/S

CPU變化總截圖

網路變化總截圖,注意順序依次為三者的網路變化

 

Get 測試 

./redis-benchmark -h 192.168.3.40 -p 6379 -t get -c 5  -n 100000000
./redis-benchmark -h 192.168.3.40 -p 6379 -t get -c 50 -n 100000000
./redis-benchmark -h 192.168.3.40 -p 6379 -t get -c 100 -n 100000000

 三者的處理速度分別是:4.1W/S ,9.9W/S , 8.5W/S

CPU變化截圖

 

網路變化總截圖,注意順序依次為三者的網路變化

    

Lpust 測試

./redis-benchmark -h 192.168.3.40 -p 6379 -t lpush -c 5 -n 100000000
./redis-benchmark -h 192.168.3.40 -p 6379 -t lpush -c 50 -n 100000000
./redis-benchmark -h 192.168.3.40 -p 6379 -t lpush -c 100 -n 100000000

 

 三者的處理速度分別是:3.8W/S ,9.9W/S , 8.7W/S

CPU變化截圖

網路變化總截圖,注意順序依次為三者的網路變化

    

本來是想測試下,正常環境下,模擬普通介面的壓測,算了一下,每個介面15KB,以這個速度記憶體16G是不夠的, 配置了100G記憶體,只能支援2分鐘,壓測不動就這樣吧,後面有機會再壓測模擬正常介面大小的結果。

今天的就先水到這裡,下篇文章見。

 

相關文章