%20%E3%81%A7%20rsync%20%E5%AE%9F%E8%A1%8C%E6%99%82%E9%96%93%E3%82%92%E6%94%B9%E5%96%84%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私は、現在 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では、
rsync
3つのプロセスとして実行されており、nice=0
そのうち2つは一貫して 50% ~ 70% の CPU 時間を使用している。OmniOSでも
rsync
3つのプロセスとして実行されていましたnice=0
が、それぞれ3%を超えない。
FreeBSD と illumos で同じハードウェア上の実行時間が大きく異なるのは、CPU 使用率が原因ですか?
もしそうなら、nice
両方の OS で同じだったのに、なぜ illumos では CPU 使用率を高くできないのでしょうか?
rsync
illumos ベースの OS で実行時間を改善するにはどうすればよいでしょうか?
よろしくお願いします。
2018-06-02 編集:
質問を明確化してより具体的にしました。@rui-f-ribeiro に感謝します。
@roaima への回答:
- ソースファイルシステムと宛先ファイルシステムは両方ともローカルディスクです
- これは各OSで一度だけ実行したものではなく、この不可解な状況を何度も繰り返してテストしてきました。
- 毎回のテストで、宛先ディレクトリツリーにソース内のファイルと一致するファイルが完全に空であることを確認しています。
答え1
謎はついに解明された。OmniOS rsyncを64ビットに切り替えて最適化を有効にするこれにより、チェックサム コードの速度が 2 倍以上になります。
さて、まったく同じハードウェアを考慮すると、OmniOS 上の rysnc は FreeBSD のものよりもさらに少し高速です。
ここにいらっしゃる皆様、そして迅速かつ徹底的にサポートしてくださった優秀な OmniOS 開発者の皆様に感謝します。