深入理解Redis--fork操作

1、fork操作

(1)同步操作

       雖然fork同步操作是非常快的,但是如果需要同步的數據量過大(比如超過20G),fork就會阻塞redis主進程。

(2)與內存量息息相關

       內存越大,fork同步數據耗時越長,當然也跟服務器有關,服務器有物理機,也有虛擬機。

(3)info:latest_fork_usec

       使用此命令可以查看持久化花費的時間,如果持久化時間過長,就會造成卡頓。

       例如:如果redis此時QPS上萬,此時redis正在持久化,而且持久化時間比較長(1s或者10幾秒),此時就會嚴重阻塞redis。

2、改善fork

(1)優先使用物理機或者高效的虛擬機支持fork操作

(2)控制redis實際最大可用內存:maxmemory

(3)合理配置linux內存分配策略:vm.overcommit_memory=1

(4)降低fork頻率:例如放寬AOF重寫自動觸發時機,減少不必要的全量複製。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章