在logmr项目中碰到一个问题,通过logstash采集的filebeat文件写入到文件中很慢,14w行要4-5分钟,2000行要2-3秒。
解决方案:
利用bufWriter,这个其实跟java的BufferWriter原理是一样的。
bufWriter := bufio.NewWriter(file) //提高写入的速度
//...省略部分代码
bufWriter.flush() //在适当的时候刷新数据到本地,这样避免每次刷数据进去提高性能
在总数据量不变的情况下,通过提高每次交互的数据量,减少了交互次数。