Odpowiedź Nerdwallera na temat tee
jednoczesnego przesyłania i obliczania sumy kontrolnej jest dobrym podejściem, jeśli martwisz się przede wszystkim o uszkodzenie w sieci. Nie ochroni cię jednak przed uszkodzeniem w drodze na dysk itp., Ponieważ pobiera sumę kontrolną, zanim trafi na dysk.
Ale chciałbym coś dodać:
1 TiB / 40 minut ≈ 437 MiB / s 1 .
Właściwie to dość szybko. Pamiętaj, że jeśli nie masz dużo pamięci RAM, musi ona wrócić z pamięci. Pierwszą rzeczą do sprawdzenia jest obserwowanie, iostat -kx 10
jak uruchamiane są sumy kontrolne; w szczególności chcesz zwrócić uwagę na %util
kolumnę. Jeśli ustawiasz dyski (prawie 100%), odpowiedzią jest zakup szybszej przestrzeni dyskowej.
W przeciwnym razie, jak wspomniano w innych plakatach, możesz wypróbować różne algorytmy sumy kontrolnej. Wszystkie MD4, MD5 i SHA-1 są zaprojektowane jako skróty kryptograficzne (chociaż żadnego z nich nie należy już używać do tego celu; wszystkie są uważane za zbyt słabe). Jeśli chodzi o szybkość, możesz je porównać openssl speed md4 md5 sha1 sha256
. Wrzuciłem SHA256, aby mieć przynajmniej jeden wystarczająco silny skrót.
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
Z powyższego widać, że MD4 jest najszybszy, a SHA256 najwolniejszy. Ten wynik jest typowy przynajmniej na sprzęcie podobnym do komputera PC.
Jeśli chcesz jeszcze większej wydajności (kosztem bycia trywialnym do manipulacji, a także mniejszym prawdopodobieństwem wykrycia korupcji), chcesz spojrzeć na skrót CRC lub Adlera. Z tych dwóch Adler jest zazwyczaj szybszy, ale słabszy. Niestety nie znam żadnych naprawdę szybkich implementacji wiersza poleceń; wszystkie programy w moim systemie działają wolniej niż md4 OpenSSL.
Tak więc, najlepiej postawić na szybkość openssl md4 -r
( -r
sprawia, że wygląda to jak wyjście md5sum).
Jeśli chcesz trochę kompilować i / lub minimalnie programować, zobacz kod Mark Adlera w Stack Overflow, a także xxhash . Jeśli masz SSE 4.2, nie będziesz w stanie pokonać szybkości sprzętowej instrukcji CRC.
1 1 TiB = 1024⁴ bajtów; 1 MiB = 1024² bajtów. Dostarcza ≈417 MB / s przy mocy 1000 jednostek.