Loading... > ### 模式介绍 在centos7中,有以下五种缓存模式: 1、none:虚拟机的IO不会被服务器缓存,但有可能被物理磁盘或阵列控制器缓存 2、writethrough:虚拟机的IO缓存在服务器,而且数据立即刷新到物理磁盘中 3、writeback:虚拟机的IO缓存在服务器 4、directsync:和writethrough类似,但虚拟机的IO会绕过服务器的页面文件 5、unsafe:服务器会缓存所以来自虚拟机的IO,同时忽略来自虚拟机的disk sync请求 6、default:如果不手动指定缓存模式,那么将会使用默认的缓存模式 > ### 安全 数据安全是第一位,如果选用缓存模式不慎,极有可能会导致数据丢失。下图为缓存模式IO示意图: ![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c2490b19-ba3d-4c77-9dd4-5df28debb8b7/660d0bc0-e74a-4d0d-b3e7-3f5dcee5840d.jpg) none与writethrough比writeback有较高的安全性。 根据上图,writeback模式下,来自虚拟机的IO会被写入服务器的页面文件中。 **不建议在raid缓存没有电池的情况下使用writeback模式** ,服务器一旦断电,还在缓存中的数据将会丢失。 writethrough的安全性最高,因为是直接写入到物理磁盘中,但同时也会损失掉一部分性能。 > ### 性能 ![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c2490b19-ba3d-4c77-9dd4-5df28debb8b7/6c3adf4d-2d9b-4665-950f-d5cf8a2f8727.jpg) 以上是五个缓存模式速度测试结果图(图片转载至网络): writeback的性能略高于除了unsafe的其他模式,但服务器上结果却是none的性能比较好。测试结果受其他因素影响,例如服务器正在运行的其他虚拟机和虚拟磁盘的其他参数。 可以设置完通过命令测试速度: `dd bs=1M count=1024 if=/dev/zero of=1gb.test conv=fdatasync` > ### 结语 数据的完整性肯定要比性能更重要,请慎重选择缓存模式。在这里推荐使用none、directsync和writethrough。 最后修改:2022 年 05 月 11 日 © 转载自他站 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏