我知道这个问题之前有人问过,我也看到了关于使用 pigz 的建议。很好的建议,但我想看看我是否真的有“问题”。
我有一个 esxi 主机。它是免费版本,因此很多企业工具都无法使用。它也是个人实验室使用,所以我不太关心高可用性。
目前,为了备份虚拟机,我有一个脚本,它可以关闭虚拟机,将虚拟机文件从本地存储复制到 1gbe NAS,启动虚拟机,然后在 NAS 上 tar -z 文件。
我开始记录一些时间只是为了看看事情花了多长时间。
示例 1:
- 28GB VM vmdk 文件
- 复制时间:5 分 21 秒
- 平均复印速度:713mbps
- 压缩时间:1 小时 55 分钟
- zip 压缩后的平均速度:33mbps
示例 2:
- 95GB VM vmdk 文件
- 复印时间:29 分 7 秒
- 平均复印速度:445mbps
- 压缩时间:4 小时 3 分钟
- zip 压缩后的平均速度:53mbps
这其实不是问题,因为虚拟机在复制完成后立即启动,tar -z 可以运行一天而不会被注意到。只是想知道这是否是 tar -z 的正常速度?
我检查了 VM 主机,CPU 和存储似乎都处于空闲状态。我检查了 NAS,CPU 和存储似乎都处于空闲状态。我不知道是否要完全使用 pigz 路线并让 VM 主机 CPU 达到最大限度,另一方面,速度再快一点就好了。
答案1
您可以使用 pigz,但要利用 -p 或 --process 选项
来自手册页https://zlib.net/pigz/pigz.pdf
-p --processes n
Allow up to n processes (default is the number of online processors)
这将允许控制压缩对其余环境的 CPU 影响量。
如果您有另一台主机,您可以将操作的压缩部分转移到该主机,并允许使用 pigz 的所有可用 CPU。
至于初始复制与压缩任务的性能。根据 NAS 配置,您可能会在从同一系统读取和写入时遇到一定程度的争用。如果 CPU 不是压缩的瓶颈,从 NAS 到 NAS 执行简单的复制将为您提供一个合理的估计,即您希望复制的速度有多快。