OmniOS (illumos ベース) で rsync 実行時間を改善するにはどうすればよいですか?

OmniOS (illumos ベース) で rsync 実行時間を改善するにはどうすればよいですか?

私は、現在 OmniOS など、いくつかのバリエーションで illumos をテストしています。

IO バウンド プロセスのベンチマークを行っていたところ、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では、rsync3つのプロセスとして実行されており、nice=0そのうち2つは一貫して 50% ~ 70% の CPU 時間を使用している

  • OmniOSでもrsync3つのプロセスとして実行されていましたnice=0が、それぞれ3%を超えない

FreeBSD と illumos で同じハードウェア上の実行時間が大きく異なるのは、CPU 使用率が原因ですか?

もしそうなら、nice両方の OS で同じだったのに、なぜ illumos では CPU 使用率を高くできないのでしょうか?

rsyncillumos ベースの OS で実行時間を改善するにはどうすればよいでしょうか?

よろしくお願いします。


2018-06-02 編集:

  • 質問を明確化してより具体的にしました。@rui-f-ribeiro に感謝します。

  • @roaima への回答:

    1. ソースファイルシステムと宛先ファイルシステムは両方ともローカルディスクです
    2. これは各OSで一度だけ実行したものではなく、この不可解な状況を何度も繰り返してテストしてきました。
    3. 毎回のテストで、宛先ディレクトリツリーにソース内のファイルと一致するファイルが完全に空であることを確認しています。

答え1

謎はついに解明された。OmniOS rsyncを64ビットに切り替えて最適化を有効にするこれにより、チェックサム コードの速度が 2 倍以上になります。

さて、まったく同じハードウェアを考慮すると、OmniOS 上の rysnc は FreeBSD のものよりもさらに少し高速です。

ここにいらっしゃる皆様、そして迅速かつ徹底的にサポートしてくださった優秀な OmniOS 開発者の皆様に感謝します。

関連情報