Redis 響應延遲問題排查

來源:互聯網
上載者:User

標籤:

參考原文:http://redis.io/topics/latency

最近資料量越來越多,並發寫操作很多的情況下,Redis出現響應慢的情況;

可以使用 Redis命令來測試一下redis的響應速度:

redis-cli --latency -h ‘xxx‘ -p ‘xxxx‘

這條命令會向Redis插入樣本資料來檢查平均延時。 Ctrl+C可以隨時結束測試;

下面我們列一下會出現延時的可能:

  • 硬體,系統:硬體問題是所有問題最底層的問題了,如果硬體慢,例如CPU主頻低,記憶體小,磁碟IO慢,這些會讓所有運行在上面的系統響應慢;另外,使用虛擬機器會讓系統啟動並執行效能太為下降;當然,有錢的話,這問題很容易解決;系統方面,Linux本身的系統資源調度也會產生一定的延時。這些一般不會很大,可以忽略不計;

  • 網路:如果用戶端和redis在同一台伺服器上,使用socket建立串連會比監聽 TCP/IP 連接埠快很多;

  • Redis命令:一些時間複雜度比較高的命令,如 lrem,sort,sunion等命令會花比較長時間;另外,大量的重複串連也會造成延時,重用串連是一種很好的品質;如果有大量寫操作,可以使用 pipeline 管道的方式(類似mysql事務),一次性提交,這樣資料量也少了,串連次數也少了,不用每次都返回資料,速度自然會快很多;

  • 持久化:Redis持久化需要fork出一個進程來進行持久化操作,這本身就會引發延時,如果資料變化大,RDB配置時間短,那這個代價還是挺大的;再加上,硬碟這東西真有點不靠譜,如果還是虛擬機器上的虛擬硬碟,如果還是NFS共用目錄,那這延時會讓你崩潰。所以,如果系統不需要持久化,關了吧。


Redis提供了SlowLog可以供我們分析執行速度慢的命令,可以分析一下;作業系統方面,可以使用 iostat 查看一下硬碟速度,使用 vmstat 查看一下記憶體分頁情況;

整體最佳化好,系統響應才會更快;




Redis 響應延遲問題排查

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.