1.背景
公司項目使用國外ucloud雲,發現公司業務服務器時常連接redis服務,發生i/o timeout的問題。研發以及服務器側查看沒有異常,反饋給ucolud解決問題。所以這里做一個記錄。
2.故障原因及導致的問題
- 連接失敗:連接失敗redis當時所在宿主機由於多個從庫備份導致IO磁盤寫突增,導致Redis主線程比較卡,處理連接請求超時。
- 備份失敗:備份首先會檢查實例當前是否有備份中的任務,如果有則備份失敗,防止因為控制台連續點擊備份導致很多個備份任務產生。但是由於業務庫未清理遺忘備份超時的任務,導致備份失敗。
3.改進措施
- 針對從庫進行遷移,分散到多個物理機,降低機器寫IO。
- 清理業務庫備份任務臟數據。
- 備份校驗加入時間判斷,防止后續歷史臟數據導致備份失敗。