Multi-Core

如果散列受 CPU 限制,如何檢查大文件的身份?

  • March 28, 2019

對於小文件,散列是可以的,但是對於大文件,你可以很容易地發現md5sum它是 CPU 限制的。是否有任何散列算法能夠在多核上橫向擴展?任何解決方法?想法?任何事物?:)

我自己目前最好的解決方案是:

parallel --block=512M --pipepart -a …HUGEFILE… --progress --recend '' \ -k -j …NUMofProcessesSay4… md5sum | md5sum

  • 應當指出的是:
  1. 生成的 md5 雜湊不是文件的,而是其部分的 md5,但它仍然允許您比較副本是否與原點相同
  2. 它的性能也不是很好,特別是當您使用pipe而不是文件作為輸入時
  3. parallel--pipepart發現不支持磁碟分區

所以我也很想听聽其他方式。

引用自:https://serverfault.com/questions/786338