我在一台有 16 个 CPU 的计算机上运行zgrep
,但只需要一个 CPU 来运行该任务。
我可以加快速度,也许利用所有 16 个核心吗?
PS IO 很好,我可以将 gzip 压缩的文件复制到内存磁盘中
答案1
您可以按照@UlrichDangel 在评论中建议的方式进行操作,并将可执行文件替换gzip
为pigz
.如果您想要一些侵入性较小的东西,您还可以为gzip
和创建函数gunzip
并将它们添加到您的$HOME/.bashrc
文件中。
gzip() {
pigz "$@"
}
export -f gzip
gunzip() {
unpigz "$@"
}
export -f gunzip
现在,当您运行时zgrep
,zcat
它会改为使用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 [选项] [文件...]