使用 SSD 可以加速“grep”吗?

使用 SSD 可以加速“grep”吗?

我需要用它grep来解析一个 50GB 的文件,但我的服务器的运行速度非常非常慢。

我想知道如果我用 SSD 替换服务器磁盘,速度是否会更快?升级值得吗?

谢谢。

編輯:

这是我从中获得的iostat,如何查看 I/O 速度?

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop7             0,00         0,00         0,00          0          0
loop6             0,00         0,00         0,00          0          0
loop5             0,00         0,00         0,00          0          0
loop4             0,00         0,00         0,00          0          0
loop3             0,00         0,00         0,00          0          0
loop2             0,00         0,00         0,00          0          0
loop1             0,00         0,00         0,00          0          0
loop0             0,00         0,00         0,00          0          0
cciss!c0d0      652,87       399,77      3568,25  120296073 1073741823

答案1

是的,如果你想要非常快速地执行 grep,你可以制作一个巨大的 RAMdisk。但你也可以更有效地执行 grep:

1)如果您正在搜索固定字符串,请使用“fgrep”而不是“grep”。

2)除非是 UTF8 文件,否则请像这样启动命令:

LC_ALL=C fgrep ‘somestring’ hugefile.log

https://stackoverflow.com/questions/13913014/grepping-a-huge-file-80gb-any-way-to-speed-it-up

令人惊奇的是它的速度如此之快。

如果这没有帮助并且您有足够的可用线程,请尝试以下操作:

将文件复制到单独的目录中,以便该文件成为该文件夹中唯一的文件,然后在该目录中运行此命令:

查找 . -type f -print0 | xargs -0 -P 4 grep 'somestring' > output.txt

“-P 4”表示它将启动 4 个进程。如果你的 IO 确实有限,那么这将无济于事,但你肯定 SSD 会有所帮助。

相关内容