如何提高 OmniOS(基于 illumos)上的 rsync 执行时间?

如何提高 OmniOS(基于 illumos)上的 rsync 执行时间?

我正在测试 illumos 的一些变体,目前是 OmniOS。

当我对 io-bound 进程进行基准测试时,我发现它rsync相对于我的参考 FreeBSD 12-CURRENT 要慢得多。

使用相同的硬件、相同的命令以及相同的源磁盘和目标磁盘:

在 OmniOS r151026 中我测量了,

test@omniosce:~# time rsync -aPt /zarc/images /home/test/

real    17m25.428s
user    28m33.792s
sys     2m46.217s

在 FreeBSD 12-CURRENT 中:

test@freebsd:~ % time rsync -aPt /zarc/images /home/test/

374.651u 464.028s 11:30.63 121.4%   567+210k 791583+780083io 2pf+0w

(请注意,FreeBSD 12-CURRENT 包含调试开关,因此它的运行速度比未来即将推出的 RELEASE 版本慢)。

  • 我注意到,在 FreeBSD 下,rsync作为 3 个进程运行,全部带有nice=0,其中两个始终使用 50% 到 70% CPU 时间

  • 在 OmniOS 上,rsync也作为 3 个进程运行,也带有nice=0,但是每一项不超过3%

CPU 使用率是 FreeBSD 和 illumos 上相同硬件上的执行时间如此不同的原因吗?

如果是这样,由于nice两个操作系统上的情况相同,为什么 illumos 不允许更高的 CPU 使用率?

如何提高rsync基于 illumos 的操作系统的执行时间?

先感谢您。


2018-06-02 编辑:

  • 澄清了问题,使其更加具体。感谢@rui-f-ribeiro

  • 回复@roaima:

    1. 源文件系统和目标文件系统都是本地磁盘
    2. 这不是每个操作系统的一次性运行,我一直在多次重复测试这种令人费解的情况
    3. 在每次测试时,我都会确保目标目录树完全没有与源中的文件匹配的文件

答案1

这个谜团终于被解开了将 OmniOS rsync 切换到 64 位并启用优化。这使得校验和代码的速度提高了一倍多。

现在,考虑到完全相同的硬件,OmniOS 上的 rysnc 甚至比 FreeBSD 的还要快一些。

感谢这里的所有人,也感谢优秀的 OmniOS 开发人员如此迅速和详尽地提供了帮助。

相关内容