Redis 效能問題的記錄

來源:互聯網
上載者:User

標籤:style   blog   color   使用   資料   問題   

最近線上使用redis, 查詢的情況不甚理想, 這個查詢操作是個 lua 指令碼, 包含如下操作

開發機 redis, 沒有其他幹擾, 插入的 zset 有 5000 member 左右, 使用的 redis 用戶端是 spring-data, 底層 jedis 實現, 另外自己封裝了一層

1. zrange key 0 0 withscores

2. expire key

3. zadd key score member

A. 結果測試10w次發現平均每次拿到資料的時間需要 2800 us (2.8 ms). 也就是說 qps 只能達到 350 左右

B. 於是在本地在此進行測試, 結果是每次調用花費 300 us (0.3 ms), 差了 10 倍左右

而在本地和開發機上直接用 redis benchmark 測試 zadd , 測試命令如下

A. 本機測試

redis-benchmark -q -r 100000 -n 100000 zadd sortedset 10 __rand_int__
zadd sortedset 10 __rand_int__: 45475.22 requests per second

127.0.0.1:6379> zcard sortedset
(integer) 63381

約合 22 us

B. dev 機器測試

redis-benchmark -h l-qproxy.tc.dev.cn6.qunar.com -p 6379 -q -r 100000 -n 100000 zadd sortedset 10 __rand_int__
zadd sortedset 10 __rand_int__: 25227.04 requests per second

remote.dev.com:6379> zcard sortedset
(integer) 63118

約合 40 us

至此又發現兩者差距並沒有想象中那麼大, 現在懷疑是不是 lua 指令碼的問題, 把 第一次測試中的lua指令碼給替換成簡單的 redis zrange key 0 0 命令, 再測試

A. 本地機器 137 us (0.1 ms)

B. dev 機器 2100 ns (2.1 ms)

現在看來, 可能是用戶端寫的爛的原因了, 在遠端連線的時候串連做的不好, 導致效率低下

 

詳細的測試資料

 

單位 usLocal Test 10W ZrangeNo test1. elapsed : 7296558 count : 99999 avg : 72Mon elapsed : 7127632 count : 100000 avg : 712.elapsed : 8026594 count : 99999 avg : 80Mon elapsed : 7843030 count : 100000 avg : 783.elapsed : 8149801 count : 99995 avg : 81Mon elapsed : 8032342 count : 100000 avg : 804.elapsed : 7961328 count : 99997 avg : 79Mon elapsed : 7820042 count : 100000 avg : 78Test on borrow1.elapsed : 10842955 count : 99999 avg : 108Mon elapsed : 10710879 count : 100000 avg : 1072.elapsed : 11232565 count : 99998 avg : 112Mon elapsed : 11130959 count : 100000 avg : 1113.elapsed : 11353824 count : 99998 avg : 113Mon elapsed : 11224904 count : 100000 avg : 1124.elapsed : 11005635 count : 99999 avg : 110Mon elapsed : 10868879 count : 100000 avg : 108Local Test 10W LuaNo test1.elapsed : 25749403 count : 99998 avg : 257Mon elapsed : 25630396 count : 100000 avg : 2562.elapsed : 25682824 count : 99997 avg : 256Mon elapsed : 25592035 count : 100000 avg : 2553.elapsed : 26502975 count : 99997 avg : 265Mon elapsed : 26373153 count : 100000 avg : 2634.elapsed : 50227904 count : 99997 avg : 251Mon elapsed : 50019605 count : 100000 avg : 250Test on borrow1.elapsed : 30026344 count : 99998 avg : 300Mon elapsed : 29874080 count : 100000 avg : 2982.elapsed : 56238052 count : 99998 avg : 281Mon elapsed : 56005620 count : 100000 avg : 2803.elapsed : 84591577 count : 99998 avg : 281Mon elapsed : 84299240 count : 100000 avg : 2804.elapsed : 112992770 count : 99993 avg : 282Mon elapsed : 112601651 count : 100000 avg : 281Dev Redis 10W ZrangeNo borrow test1.elapsed : 118723620 count : 99993 avg : 1187Mon elapsed : 118801299 count : 100000 avg : 11882.elapsed : 248431698 count : 99993 avg : 1242Mon elapsed : 248271355 count : 100000 avg : 12413.elapsed : 360073711 count : 99993 avg : 1200Mon elapsed : 359465633 count : 100000 avg : 11984.elapsed : 116067058 count : 99996 avg : 1160Mon elapsed : 115373200 count : 100000 avg : 1153Test on borrow1.elapsed : 217290959 count : 94648 avg : 2295Mon elapsed : 291451989 count : 100000 avg : 29142.elapsed : 214828993 count : 99996 avg : 2148Mon elapsed : 506368136 count : 200000 avg : 25313.elapsed : 216495505 count : 100000 avg : 2164Mon elapsed : 722433027 count : 300000 avg : 24084.elapsed : 216426804 count : 99996 avg : 2164Mon elapsed : 938483110 count : 400000 avg : 2346Dev Redis 10W LuaNo borrow test1.elapsed : 139567804 count : 99928 avg : 1396Mon elapsed : 140374850 count : 100000 avg : 14032.elapsed : 137681314 count : 99996 avg : 1376Mon elapsed : 278360257 count : 200000 avg : 13913.elapsed : 138600259 count : 99995 avg : 1386Mon elapsed : 416537097 count : 300000 avg : 13884.elapsed : 152433076 count : 99997 avg : 1524Mon elapsed : 568534621 count : 400000 avg : 1421test on borrow1.elapsed : 275491060 count : 86077 avg : 3200Mon elapsed : 458422068 count : 100000 avg : 45842.elapsed : 245908497 count : 99989 avg : 2459Mon elapsed : 704242016 count : 200000 avg : 35213.elapsed : 253036141 count : 99161 avg : 2551Mon elapsed : 967942699 count : 300000 avg : 32264.elapsed : 251844305 count : 99965 avg : 2519Mon elapsed : 1219753868 count : 400000 avg : 3049

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.