我正在考慮用多核心 Banana Pi M3 的加密磁碟替換單核心 Raspberry Pi。加解密效能目前是瓶頸,所以我想知道dm-crypt加解密是否可以利用多核心。
答案1
是的,在最近的核心中,dmcrypt 請求可以並行化。這平行化補丁已被整合到4.0,一目了然(4.0的dm-crypt.c
包括kthread.h
,以前的版本沒有)。舊版本有一個用於 dmcrypt 請求的工作佇列,因此不同的區塊無法並行加密或解密(即使在不同的裝置上,據我所知)。
然而並行化並不總是勝利。將請求分派到不同的 CPU 並收集結果需要一些時間,因此只有當有足夠的並行請求並且您一次不等待單個區塊時,這才是勝利。通常,如果您有多個應用程式存取不同的文件,您會獲勝,但在處理單個大文件時,您的勝利不會太大(甚至可能會損失一點)。
如果您想要更好的加密效能,請選擇基於 ARMv8 處理器並具有 AES 加速功能的產品,即實際上是 64 位元 CPU。硬體加密加速確實能帶來真正的改變,遠遠超過並行化在最好的情況下所帶來的影響,只要 CPU 時間是瓶頸,它就對所有工作負載都有幫助。請注意,並非所有基於 ARMv8 的 CPU 都具有硬體加密加速(有時會省略它以避免遇到加密匯出/導入法規)。但即使沒有硬體加密,在 64 位元模式下運作也可以實現可測量的加速。
事實證明,Pi 3 沒有加密擴充。 Banana Pi M64 可能適合您,因為它有加密擴展(如果我沒有對非常相似的 SoC 名稱感到困惑)。 Pi M64 的 SATA 子系統雖然位於 USB 2 之上(如 M3),但速度不如帶有本機 SATA 控制器的版本,因此如果 I/O 結果證明,Raspberry Pi 3 可能同樣好成為瓶頸,因為無論如何加密不會使CPU 飽和。