redis-fainaでよく使用されるコマンドを確認する
redis-faina
使おうとするときすぐ使えるようにするメモ。
RedisのMonitorコマンドを使って出力した情報をsummaryしてくれるすごいツール。 Monitorしてると負荷上がるからなにかある時に使う。
ダウンロード
git clone https://github.com/facebookarchive/redis-faina.git
準備
redis-benchmarkを使用してそのワークロード実行しておく
# redis-benchmark ====== PING_INLINE ====== 100000 requests completed in 0.83 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 120192.30 requests per second ====== PING_BULK ====== 100000 requests completed in 1.01 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 98522.17 requests per second ====== SET ====== 100000 requests completed in 0.91 seconds 50 parallel clients 3 bytes payload keep alive: 1 99.95% <= 1 milliseconds 99.95% <= 15 milliseconds 99.98% <= 16 milliseconds 100.00% <= 16 milliseconds 110375.27 requests per second ====== GET ====== 100000 requests completed in 0.89 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 112612.61 requests per second ・ ・ ====== MSET (10 keys) ====== 100000 requests completed in 3.39 seconds 50 parallel clients 3 bytes payload keep alive: 1 0.01% <= 1 milliseconds 98.14% <= 2 milliseconds 100.00% <= 3 milliseconds 100.00% <= 3 milliseconds 29455.08 requests per second
redis-benchmark実行中にmonitorコマンド使用して、ファイルにリダイレクトさせておく。 CTRL+Cとかで終了もできる。
# redis-cli monitor > monitor.txt
redis-faina実行して確認する
# cat monitor.txt | ./redis-faina/redis-faina.py Overall Stats ======================================== Lines Processed 1500001 Commands/Sec 43812.98 Top Prefixes ======================================== key 300000 (20.00%) counter 100000 (6.67%) Top Keys ======================================== mylist 700000 (46.67%) key:__rand_int__ 300000 (20.00%) myset 200000 (13.33%) counter:__rand_int__ 100000 (6.67%) Top Commands ======================================== LRANGE 400000 (26.67%) PING 200000 (13.33%) LPUSH 200000 (13.33%) INCR 100000 (6.67%) SET 100000 (6.67%) SADD 100000 (6.67%) GET 100000 (6.67%) SPOP 100000 (6.67%) Command Time (microsecs) ======================================== Median 6.0 75% 33.5 90% 63.0 99% 132.0 Heaviest Commands (microsecs) ======================================== LRANGE 20988495.0 MSET 3393906.75 LPUSH 2054070.75 PING 1696820.0 SET 1180424.75 SADD 1095502.5 INCR 1053511.25 LPOP 944271.25 Slowest Calls ======================================== 13712.0 "LRANGE" "mylist" "0" "599" 13146.0 "PING" 13027.0 "LRANGE" "mylist" "0" "299" 12669.0 "LRANGE" "mylist" "0" "449" 12163.0 "PING" 11780.0 "LRANGE" "mylist" "0" "99" 11622.0 "LPUSH" "mylist" "xxx" 11323.0 "SET" "key:__rand_int__" "xxx"