Hunting for registry throughput, layer by layer
In part 1 we setup a Harbor registry backed by Garage and survived the first week. This part is about making it fast - or more precisely, about finding out, one layer at a time, what “fast” was even limited by.
TLDR: we fixed four genuinely broken or suboptimal things - the proxy path, hardware crypto, the overlay network, NIC queues - and the single-stream pull number barely improved. The reason was in Garage’s documentation all along, and it turned out not to matter much. But the fixes were still worth it, for reasons that only became clear once we could measure each layer by itself.