Freebsd
如何提高 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:
- 源文件系統和目標文件系統都是本地磁碟
- 這不是每個作業系統的一次性執行,我一直在反複測試這種令人費解的情況
- 在任何測試中,我都確保目標目錄樹完全沒有與源中的文件匹配的文件
通過將 OmniOS rsync 切換到 64 位並啟用優化,這個謎團終於解開了。這使校驗和程式碼的速度提高了一倍以上。
現在,考慮到完全相同的硬體,OmniOS 上的 rysnc 甚至比 FreeBSD 快一點。
感謝這裡的所有人,感謝出色的 OmniOS 開發人員,他們提供瞭如此迅速和詳盡的幫助。