如何以最小的 cpu 百分比压缩文件?

如何以最小的 cpu 百分比压缩文件?

我正在使用 bzip2 来压缩文件,该过程占用的 cpu 超过 100%。有没有办法以最小的 CPU 百分比运行 bzip2。

答案1

此进程是否会干扰系统上的其他进程?为什么要限制 bzip2 使用的 CPU?

您可以使用以下nice命令更改进程的优先级:

$ nice -n 19 bzip2 <file>

此外,您可以尝试降低bzip2压缩级别:

$ bzip2 -1 <file>

答案2

推荐:使用优先级

除了@EEAA答案之外,如果您想为 bzip 进程提供最大的低优先级,以便其他进程受到的影响最小,您应该ionice另外使用。请注意,这仅在使用IO 调度程序(内核上的默认设置,但这可以通过您的安装进行调整)ionice时有用。如果您使用或IO 调度程序,则不会有任何影响。CFQionicedeadlinenoop

要验证您正在使用哪个 IO 调度程序:

cat /sys/block/<DEVICE>/queue/scheduler

<DEVICE>你的硬盘设备在哪里,例如sda

现在使用ionice,您想要设置最低的 IO 优先级,即 3 类。您可以将其组合在一起nice

$ nice -n 19 ionice -c3 bzip2 <file>

正如 Tom 和 EEAA 所解释的,这已经足够好了。当没有其他进程需要 CPU 或 IO 时,内核将确保 bzip 能够尽可能快地运行。但如果其他进程需要的话,它会优先考虑它们。这是推荐的选择。

替代方案: cpulimit - 限制 CPU 使用率

现在您仍然可以在 bzip 上使用“CPU 限制”。这不是我的选择,但如果您想尝试或更好地喜欢它,您应该使用cpulimit.但是,它通常不会打包或默认安装在 Linux 中。所以你必须安装它。尼克斯克拉夫特有一个很好的文档如何安装和使用cpulimit
官方网站是:http://cpulimit.sourceforge.net/

相关内容