DRBD causes too much CPU-load

The TL;DR version: don’t use data-integrity-alg in a production setup.

The users guide (8.3 version) describes the data-integrity-alg as

DRBD can ensure the data integrity of the user’s data on the network by comparing hash values. […]

Too many people think this is a must-have setting – but are sadly wrong.

During initial installation and testing it does make sense to use this – it’s an easy way to find out whether the hardware (CPU, memory, network card, etc.) work as they should – if you get the famous Digest integrity check FAILED message[1. and not the corresponding blaming message Digest mismatch, buffer modified by upper layers during write, see eg. here] you can be worried (but not too much, since you found that during testing (;).

But in production this should not be set – apart from causing a lot of CPU load[1. and, therefore, restricting throughtput] it might cause frequent connection abort – and that means a short bit of time (re-sync) during which the secondary is inconsistent.

So: don’t use this in production.