最近一段時間在將公司內部的cache層抽離,使用redis來作緩存。將集羣搭建後跑起來發現系統負載出現陡增陡降的現象。而機器的運行的各項指數也較爲正常。後來發現redis配置使用了部分默認配置。 auto-aof-rewrite-percentage 選項爲100%。aof基準大小是486mb。這樣一次持久化就會很長的週期大約2小時。致使負載上升。 前端
其次有一個重要的選項,如何將aof的數據寫到磁盤上。appendfsync 系統默認爲everysec。目的是爲了在可靠性和性能間取得平衡,而因爲咱們是將redis做爲cache使用,可以允許在redis掛掉時丟掉一部分數據。則將該選項設置爲no,以期待最高的性能。 redis
未改變前機器負載: 緩存
改變後機器負載:
app
---------- 性能
後續上了對查詢時間較爲敏感的業務後,發現不斷地rewrite aof 時會在rewrite的瞬間形成查詢時間變長。 spa
因而索性關掉redis的aof自動rewrite功能。將rewrite用定時任務來作。 it
這樣最大的損失也僅僅是redis掛掉後重啓時間久點而已。而redis從集羣搭建到如今尚未出現個掛掉的狀況。 集羣
後來前端的查詢就較爲穩定了。固然不可避免的仍然是在rewrite時的查詢時延。 配置