One of the main culprits is often virtualization. Used without a good understanding of what goes on under the hood it is super easy to create a situation that heavily overloads some data path to storage without being aware of it because it's all so nicely abstracted away. Fifty virtual machines trying to access the same storage layer is a pretty good recipe for a disaster.