Відповідь Нердваллера про використання tee
одночасно для передачі та обчислення контрольної суми є хорошим підходом, якщо ви в першу чергу переживаєте за корупцію в мережі. Це не захистить вас від корупції на шляху до диска тощо, хоча його приймають контрольну суму до того, як вона потрапить на диск.
Але я хотів би додати щось:
1 TiB / 40 хвилин ≈ 437 MiB / сек 1 .
Це дуже швидко, насправді. Пам’ятайте, що якщо у вас багато оперативної пам’яті, це повертається зі сховища даних. Тому перше, що потрібно перевірити, - це спостерігати iostat -kx 10
за запуском контрольних сум; зокрема ви хочете звернути увагу на %util
колонку. Якщо ви прив’язуєте диски (близько 100%), то відповідь - купити швидше зберігання.
В іншому випадку, як згадували інші афіші, ви можете спробувати різні алгоритми контрольної суми. MD4, MD5 та SHA-1 розроблені як криптографічні хеші (хоча жоден із них більше не повинен використовуватись для цієї мети; всі вважаються занадто слабкими). Швидкісно, ви можете порівняти їх openssl speed md4 md5 sha1 sha256
. Я кинув у 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 - найповільніший. Цей результат принаймні характерний для апаратного забезпечення, подібного до ПК.
Якщо ви хочете ще більше продуктивності (за рахунок того , щоб бути тривіальної підробити, а також з меншою ймовірністю виявлення корупції), ви хочете подивитися на хеш CRC або Адлера. З двох, Адлер, як правило, швидший, але слабший. На жаль, я не знаю жодної реально швидкої реалізації командного рядка; програми в моїй системі все повільніше, ніж md4 OpenSSL.
Таким чином, ваш кращий вибір швидкості мудрий openssl md4 -r
( -r
робить його схожим на вихід md5sum).
Якщо ви готові виконати компіляцію та / або мінімальне програмування, перегляньте код Марка Адлера на Stack Overflow, а також xxhash . Якщо у вас SSE 4.2, ви не зможете перемогти швидкість інструкції щодо апаратної CRC.
1 1 TiB = 1024⁴ байт; 1 МіБ = 1024² байт. Дістається до ≈417 Мб / сек з потужністю 1000 одиниць.