![为什么 7z 没有使用足够的 CPU?](https://linux22.com/image/205374/%E4%B8%BA%E4%BB%80%E4%B9%88%207z%20%E6%B2%A1%E6%9C%89%E4%BD%BF%E7%94%A8%E8%B6%B3%E5%A4%9F%E7%9A%84%20CPU%EF%BC%9F.png)
CentOS 9.3 vCPU 虚拟机,具有 4Gb RAM。
我使用 7z 运行 cron 作业,将 35Gb 数据压缩为 150 个文件7za a -mx=9 -mmt=3 ...
RAM 使用率 - 18%,磁盘队列很小,CPU 平均为 61%。为什么不是100%?如何找到瓶颈?
sar -p -d 1 10
Linux 5.14.0-80.el9.x86_64 (logger) 30/04/22 _x86_64_ (3 CPU)
16:50:10 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:11 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda
16:50:11 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda
16:50:12 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:13 39.00 33832.00 0.00 0.00 867.49 0.04 0.95 1.90 sda
16:50:13 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:14 2.00 0.00 24.00 0.00 12.00 0.00 0.50 0.10 sda
16:50:14 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda
16:50:15 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda
16:50:16 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda
16:50:17 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda
16:50:18 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:19 2.00 0.00 12.00 0.00 6.00 0.00 0.50 0.20 sda
16:50:19 tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
16:50:20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda
Average: tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
Average: 4.30 3383.20 3.60 0.00 787.63 0.00 0.91 0.22 sda
sar -p -u 1 10
Linux 5.14.0-80.el9.x86_64 (logger) 30/04/22 _x86_64_ (3 CPU)
16:50:26 CPU %user %nice %system %iowait %steal %idle
16:50:27 all 60.20 0.00 0.99 0.00 0.00 38.82
16:50:28 all 61.54 0.00 0.67 0.00 0.00 37.79
16:50:29 all 60.87 0.00 0.33 0.00 0.00 38.80
16:50:30 all 59.26 0.00 1.01 0.00 0.00 39.73
16:50:31 all 60.20 0.00 1.00 0.00 0.00 38.80
16:50:32 all 62.79 0.00 0.00 0.00 0.00 37.21
16:50:33 all 63.46 0.00 1.00 0.00 0.00 35.55
16:50:34 all 64.88 0.00 0.67 0.00 0.00 34.45
16:50:35 all 63.04 0.00 0.66 0.00 0.00 36.30
16:50:36 all 62.88 0.00 0.33 0.00 0.00 36.79
Average: all 61.91 0.00 0.67 0.00 0.00 37.42
编辑我找到了这个文档:https://documentation.help/7-Zip/method.htm 它说“LZMA 压缩仅使用 2 个线程。”这可以解释我在 CentOS 上观察到的情况。但在 Windows 上,它使用 24 个线程和 LZMA。为什么?
答案1
谜团已解决:7za a -mx=9 -mmt=4
- 尽管虚拟机只有 3 个 vCPU,但请注意 4 个线程。
现在它使用 100% CPU。
7z 作者的帮助:https://sourceforge.net/p/p7zip/discussion/383043/thread/15831e05/#576a/740e/7944