加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 对大文件的tac命令效率如何

发布时间:2020-12-13 16:54:21 所属栏目:Linux 来源:网络整理
导读:taccommand(catreversed)可用于向后读取文件,就像cat从头开始读取它一样.我想知道,这是多么有效率.它是否必须从头开始读取整个文件,然后在到达结尾时反转一些内部缓冲区? 我计划将它用于一些经常调用的监视脚本,它需要检查文件的最后n行,其大小为几百兆字节
taccommand(catreversed)可用于向后读取文件,就像cat从头开始读取它一样.我想知道,这是多么有效率.它是否必须从头开始读取整个文件,然后在到达结尾时反转一些内部缓冲区?

我计划将它用于一些经常调用的监视脚本,它需要检查文件的最后n行,其大小为几百兆字节.但是,我不希望这会导致繁重的I / O负载或通过一遍又一遍地读取文件(大约每分钟一次左右)来填充缓存空间以及其他无用的信息.

任何人都可以对该命令的效率有所了解吗?

解决方法

如果使用得当,tac的效率相当高,可以一次读取8K块,从后面寻找.

除其他外,“正确使用”要求对您的文件提供直接,可寻找的处理:

tac yourfile   # this works fine

…要么…

tac <yourfile  # this also works fine

# DON'T DO THIS:
# this forces tac to copy "yourfile" to a new temporary file,then uses its regular
# algorithm on that file.
cat yourfile | tac

也就是说,与使用logstash或可以提供给索引存储的类似工具和/或生成事件以进行CEP实时分析相比,我会考虑反复运行这种工具,这是一种非常低效的扫描日志的方法.引擎如Esper或Apache Flink.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读