Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Performance issue with loading feeds



  • We appear to have a performance problem with loading ProGet feeds. It's particularly pronounced in the web interface, but also happens in Visual Studio. When I click on Feeds -> [name of our internal feed] in the web interface, it takes over a minute before the packages appear. We currently have ProGet 3.1.0 installed, but the problem has always been present for us. The feed in question is not huge, just 450 package versions (23 package identities).

    When I look at Wireshark while the Feeds page on the web interface is loading, the server almost immediately starts sending back the feed data, but it trickles in really slowly (as little as a single character per IP packet, typically one JSON element per packet), so that it takes ~90 seconds before the entire JSON data arrives and the packages are shown.

    What can we do to improve this situation?

    Product: ProGet
    Version: 3.1.0



  • Are you certain this isn't a network issue? As a benchmark, in our own most populated feed we have well over 700 package versions (1GB+) and it loads in a couple seconds.

    Can you provide a Fiddler trace of this behavior? You can email an example to support@inedo.com



  • I must have missed the part where you mentioned slow TCP traffic, so the Fiddler trace wouldn't help debugging. Either way, NuGet operates at the HTTP level, so whatever web server or network you're running on is causing this, not ProGet. Try switching from the integrated web server to IIS (or vice versa) to see if that helps.



  • I will check if we can try switching to IIS, currently our ProGet installation uses the integrated web server.

    In the meantime, here is some further analysis though. The JSON response uses chunked HTTP transfer encoding, and it sends a chunk for every JSON element, like this:

    11
    "IsLatestVersion"
    1
    :
    4
    true
    1
    ,
    19
    "IsAbsoluteLatestVersion"
    1
    :
    4
    true
    

    This looks like the ProGet is pushing the data to the webserver without buffering, though I'm not sure that that would cause as large a slowdown as we experience.

    Something else that I just realized: The ProGet server is still running on a Windows XP machine. Since it apparently uses an operating system API to act as web server, maybe the service behind that API has been improved after XP.



  • Hi Simeon,

    Windows XP is definitely not going to be a reliable server :)

    The TCP stack is deliberately throttled/crippled to prevent server usage.



Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation