如何提高 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 開發人員如此迅速且詳盡地提供了幫助。

相關內容