由於自帶的redis-benchmark不能按照設定的tps執行,因此增加tps控制功能。
x/(t+t') = tps/1
t' = x/tps - t
其中,x表示處理的請求數,t表示處理x筆請求花費的時間,t'表示需要等待的時間,tps表示設定的tps值
利用redis-benchmark中自帶的時間事件實現
int counts = 0;
int showthroughput(struct aeeventloop *eventloop, long
long id, void *clientdata)
if (config.csv) return
250;
if (config.idlemode == 1)
float dt = (float)(mstime()-config.start)/1000.0;
float rps = (float)config.requests_finished/dt;
float realtime_rps = ((float)config.requests_finished - pre_req)/(dt - pre_time);
if(config.tps != 0)
}pre_time = dt; /* 上一次時間事件的累積時間 */
pre_req = config.requests_finished; /* 上一次時間事件累積完成的請求數 */
if (counts % 200 == 0)
counts++;
return
250; /* every 250ms */
}
當-c選項設定為1時,能夠得到更準確的tps控制,並且可用於計算請求延時,即傳送1筆請求到收到這筆請求耗費的時間。
1/(t+t') = tps/1
t' = 1/tps - t
其中,t表示處理x筆請求花費的時間,t'表示需要等待的時間,tps表示設定的tps值
實現類似,但是需要在readhandler和writehandler中實現。 Redis benchmark使用總結
redis benchmark為redis效能測試工具。指令說明 usage redis benchmark h p c n k h server hostname default 127.0.0.1 p server port default 6379 s server socket overri...
Redis benchmark測試Redis效能
redis benchmark是官方自帶的redis效能測試工具,可以有效的測試redis服務的效能。使用說明如下 usage redis benchmark h p c n k h server hostname default 127.0.0.1 p server port default 63...
Redis benchmark測試Redis效能
引自 redis benchmark為redis效能測試工具。指令說明 usage redis benchmark h p c n k h server hostname default 127.0.0.1 p server port default 6379 s server socket ove...