BSDCan2017 - 0722b

BSDCan 2017
The Technical BSD Conference

Warner Losh
Day Talks #1 - 9 June - 2017-06-09
Room DMS 1160
Start time 11:15
Duration 01:00
ID 857
Event type Lecture
Track Hacking
Language used for presentation English

Backpressure up the I/O stack

Dynamically tuning limits in the FreeBSD buffer cache provides better performance than the static limits. Providing feedback from the lower layers allows the upper layers to better schedule work. In addition, mixed storage system with spinning media and flash dynamically size the work load based on what storage units are capable of.

FreeBSD's VM system uses a number of limits to moderate I/Os in the system. These limits were tuned in the 1990's well before Flash changed the dynamics of storage. Tuning the system's limits for good performance can be a bit of a black art. The back pressure work introduces a communication link between the lowest layers of the system and the upper layers. The current static limits try to guess what the I/O system can support, and the optimal load to get good performance. In addition, the policy of moderating the load with low and high water produces uneven performance.

This work builds on the work that Isilon has done for the laundering of the system and made it possible.

The buffer cache can manage the global limits, as well as schedule enough I/O to not swamp the drives in a system. In addition, bad performance on one drive no longer affects all the others in the system. Slow drives no longer will starve large drives of writes because the limits that were global are now influenced by drive performance.

The work is fairly detailed, and getting into all the details will make for a boring talk. To make the talk more interesting, there will be a brief tutorial on the current system VM, buffer cache, how I/Os flow through system. Once the background has been given, I'll talk about the changes to the system, how to hook into the system.