[$] The creation of the io.latency block I/O controller
Sharing a disk between users in Linux is awful. Different applicationshave different I/O patterns, they have different latency requirements, andthey are never consistent. Throttling can help ensure that users get theirfair share of the available bandwidth but, since most I/O is in thewriteback path, it's often too late to throttle without putting pressureelsewhere on the system. Disks are all different as well. You havespinning rust, solid-state devices (SSDs), awful SSDs, and barely usableSSDs. Each class of device has its own performance characteristics and,even in a single class, they'll perform differently based on the workload.Trying to address all of these issues with a single I/O controller wastricky, but we at Facebook think that we have come up with a reasonablesolution.