在多核计算机上加速 zgrep

在多核计算机上加速 zgrep

我在一台有 16 个 CPU 的计算机上运行zgrep,​​但只需要一个 CPU 来运行该任务。

我可以加快速度,也许利用所有 16 个核心吗?

PS IO 很好,我可以将 gzip 压缩的文件复制到内存磁盘中

答案1

您可以按照@UlrichDangel 在评论中建议的方式进行操作,并将可执行文件替换gzippigz.如果您想要一些侵入性较小的东西,您还可以为gzip和创建函数gunzip并将它们添加到您的$HOME/.bashrc文件中。

gzip() {
 pigz "$@"
}
export -f gzip

gunzip() {
 unpigz "$@"
}
export -f gunzip

现在,当您运行时zgrepzcat它会改为使用pigz

参考

答案2

或者将 /usr/local/bin/{gzip,gunzip} 符号链接到相应的二进制文件,因为它可能位于 /usr/bin 之前的 PATH 中

$ sudo ln -s /usr/bin/pigz /usr/local/bin/gzip

$ sudo ln -s /usr/bin/unpigz /usr/local/bin/gunzip

$ 哪个 gzip

/usr/local/bin/gzip

$ gzip --帮助

用法:pigz [选项] [文件...]

相关内容