tee
チェックサムの転送と計算を同時に使用することに関するNerdwallerの答えは、主にネットワーク上の破損について心配している場合に適したアプローチです。ただし、ディスクに到達する前にチェックサムを取得するため、ディスクへの途中での破損などから保護されません。
しかし、私は何かを追加したいと思います:
1 TiB / 40分≈437 MiB /秒1。
実際、それはかなり速いです。大量のRAM がない限り、ストレージから戻らなければならないことに注意してください。したがって、最初に確認することはiostat -kx 10
、チェックサムの実行を監視することです。特に、%util
列に注意を払う必要があります。ディスクをペッグしている場合(100%近く)、答えはより高速なストレージを購入することです。
それ以外の場合、他のポスターで述べたように、異なるチェックサムアルゴリズムを試すことができます。MD4、MD5、およびSHA-1はすべて暗号化ハッシュになるように設計されています(これらのいずれもその目的に使用されるべきではありませんが、すべてが弱すぎると見なされます)。賢明な速度で、あなたはそれらを比較することができますopenssl speed md4 md5 sha1 sha256
。少なくとも1つはまだ十分に強力なハッシュを持つためにSHA256を投入しました。
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md4 61716.74k 195224.79k 455472.73k 695089.49k 820035.58k
md5 46317.99k 140508.39k 320853.42k 473215.66k 539563.35k
sha1 43397.21k 126598.91k 283775.15k 392279.04k 473153.54k
sha256 33677.99k 75638.81k 128904.87k 155874.91k 167774.89k
上記のうち、MD4が最も速く、SHA256が最も遅いことがわかります。この結果は、少なくともPCのようなハードウェアでは一般的です。
パフォーマンスをさらに向上させる必要がある場合(改ざんするのは簡単ですが、破損を検出する可能性は低くなります)、CRCまたはAdlerハッシュを調べます。この2つのうち、Adlerは一般的に高速ですが、脆弱です。残念ながら、私は本当に高速なコマンドラインの実装を認識していません。私のシステム上のプログラムはすべてOpenSSLのmd4よりも遅いです。
したがって、速度面での最善策はopenssl md4 -r
(-r
md5sum出力のように見えるようにすることです)です。
コンパイルおよび/または最小限のプログラミングを行う場合は、Stack OverflowおよびxxhashでMark Adlerのコードを参照してください。SSE 4.2を使用している場合、ハードウェアCRC命令の速度を上回ることはできません。
1 1 TiB =1024⁴バイト; 1 MiB =1024²バイト。1000の累乗単位で約417MB /秒になります。