Redis持久化-fork操作


1.fork操作

  • 用於同步操作,
  •   雖然fork同步操作非常快,同步大數據量時,fork就會阻塞主進程
  • 與內存量息息相關,使用的內存越大,耗時越長
  • info:latest_fork_usec 
  •   查看持久化花費的時間,如果持久時間過長,就會造成卡頓 ,假如QPS上萬,此時redis正在持久化,持久化時間長,就會造成卡頓

 

2 改善fork

  • 優先使用物理機或者或者高效的虛擬機支持fork操作
  • 控制redis實際最大可用操作
  • 合理配置linux內存分配策略
  • 降低fork頻率:例如放寬AOF重寫自動觸發機制,減少不必要的全量復制

 

3.子進程開銷和優化

  •  cpu
  •   開銷:RDB和AOF文件生成屬於CPU密集型
  •   優化:不做CPU把綁定,不和CPU密集型的應用部署
  • 內存
  •   開銷:fork內存開銷, copy-on-write
  •   優化:echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • 硬盤:AOF和RDB文件寫入,可以結合iostat,iotop分析

 

4.硬盤優化

  •   不要和高硬盤負載服務部署一起:存儲服務,消息隊列
  •   no-appendfsync-on-write=yes
  •   根據寫入量決定磁盤類型:SSD
  •   單機多實例持久化文件目錄可以考慮分盤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM