最近遇到一个MySQL数据写入异常的问题, 由于之前踩过磁盘IO速度的坑, 所以这次也优先排查磁盘写入速度是否有问题, 废话少说, 上代码:
package main
import (
"os..., 相当于并没有实际写入到磁盘,而是缓存在内存中
那么怎么办呢, 磁盘缓存肯定是有一个极限的, 可能几百M或者1/2G, 不能再多了,这块没具体去研究, 想到这里就优化了一下测试方案, 改单次写入为持续写入..., 上面黑色的是固态, 下面的蓝色部分是机械
然后到Ubuntu上测试, 发现上面挂载的 Samsung SSD 960 EVO 250GB 没有问题,持续写入4G内容, 速度全程都是在 2-5ms/4M..., 对磁盘写入速度的怀疑消除~~!...(str)
f.Sync()
它会要求系统立即将文件的缓存进行持久化,写入到磁盘…加上sync()之后测试, 结果也符合预期.