当我在 Linux 中使用该zip
实用程序压缩文件时,CPU 利用率将达到 100%。
谁能帮我解释一下为什么CPU占用率这么高?
我正在使用命令:
zip file_name *.xml
答案1
您可以限制 zip 命令的 CPU 使用率,使其不超过一定的使用率。例如,如果您希望 zip 命令不占用超过 30% 的 CPU,那么您可以使用以下命令:
cpulimit -e zip -l 30
答案2
文件的可压缩性越高,压缩时使用的 CPU 就越多,因为它实际上执行压缩(受 CPU 限制)而不是 I/O。 XML 文件是高度由于其冗长和重复的性质而可压缩。
答案3
如果任务可以使用大量 CPU 能力而不被中断,则 CPU 利用率较高。您可以说:CPU 利用率高是好事,因为它可以轻松提高计算机的速度......
如果您要压缩一个可以轻松压缩的文件(例如,重复同一行文本 100000 次),请在极快的 CPU 上执行此操作并从极慢的磁盘(或网络存储)加载文件,然后 CPU 利用率会减少。但它会这样做,因为 CPU 一直在等待 I/O。如果存储非常快而 CPU 非常慢,则 CPU 利用率会增加,因为 I/O 等待时间相对于 CPU 时间会减少。
CPU 利用率低于 100% 意味着您的 CPU 有未使用的资源。这通常不是您想要的。具有高 CPU 利用率的进程对于系统上的其他进程来说甚至更好,因为它不会影响它们的 I/O 瓶颈。
当多个进程真正竞争 CPU 时间(每个进程都可以使用 100% CPU)时,哪些进程执行得更慢取决于 CPU 优先级,可以使用ps
或查看并使用、和top
进行设置。 cgroup 是一个用于确定进程组优先级的强大概念。top
nice
renice