1.背景
公司项目使用国外ucloud云,发现公司业务服务器时常连接redis服务,发生i/o timeout的问题。研发以及服务器侧查看没有异常,反馈给ucolud解决问题。所以这里做一个记录。
2.故障原因及导致的问题
- 连接失败:连接失败redis当时所在宿主机由于多个从库备份导致IO磁盘写突增,导致Redis主线程比较卡,处理连接请求超时。
- 备份失败:备份首先会检查实例当前是否有备份中的任务,如果有则备份失败,防止因为控制台连续点击备份导致很多个备份任务产生。但是由于业务库未清理遗忘备份超时的任务,导致备份失败。
3.改进措施
- 针对从库进行迁移,分散到多个物理机,降低机器写IO。
- 清理业务库备份任务脏数据。
- 备份校验加入时间判断,防止后续历史脏数据导致备份失败。