Over the past few weeks, we’ve been investigating whether to turn on the content delivery network (CDN) feature of the Azure blob storage container for NuGet packages. In theory, this would make package downloads faster – especially if you’re located outside of the United States.
We want your help to conduct an experiment to measure the difference in downloading packages with CDN enabled verses disabled. Our initial experiment deployed nuget.exe into different regions and measured the time to download a set of NuGet packages. Unfortunately, in all of the regions we deployed to, we were still sitting on an Internet backbone connection, so even our baseline measurements (with CDN disabled) showed a statistically insignificant difference between a deployment in northern Europe and a deployment in the USA. As such, it would seem that enabling CDN wouldn’t yield any measurable benefit.
We think that the reason for the inconclusive baseline is due to the fact that there’s no “last mile” involved in the measurements, and this is where the majority of the slowdown happens. While we could try and simulate last mile time, we would rather change the experiment a bit and ask for your help.
We’ve created a custom of NuGet.exe along with a batch file runner that you can download here. Just unpack the zip file and run NuGet-CDN.bat. This will download the top 25 NuGet packages from both the standard package URL and a CDN URL and then log the time it takes to perform the download operations. You will then be asked to optionally provide your location, which will help us get a better sense of the global impact of using the CDN.
The batch process will wrap the log files along with your location information into a new NuGet package. Please email that package to nugetgallery@outercurve.org.
Thanks in advance for your help!
0 comments