Under The Hood: I/O Priority and Networking

Along with working to modify the traditional cache hierarchy for better performance, Vista includes the introduction of several new technologies designed to help applications better utilize disk and network bandwidth. For disk bandwidth, Vista now includes an I/O priority system that allows applications to specify the priority of their I/O operations so that Vista can service the most important operations first, not unlike the priority system for applications. This is in comparison to XP which executes all I/O operations as if they have the same priority, which results in other applications having their own I/O operations slowed down even if they're more important.

With only four levels of priority (two of which are effectively for exclusive use by Vista), the I/O priority system in Vista isn't nearly as refined as the application priority system, but it's enough to get the job done. With two remaining priority levels, the benefit of the priority system to users is that traditional background tasks such as virus scanning can not only be low-priority tasks for the CPU, but now the disk too; anyone who has attempted two I/O heavy operations before has seen firsthand how they often cause the operations to take longer than their sums to complete. The new I/O priority system won't entirely alleviate any slowdowns caused by background applications as these requests have to be serviced at some point, but by reducing the interruptions caused by background applications these applications can be run without bringing a system to quite as much of a halt.

Somewhat related, I/O operation size has also been increased. Previously, Windows broke all I/O operations down to 64KB requests, which causes some overhead as each chunk of a larger operation needs to be processed separately. Vista no longer has a cap on I/O operation sizes, and will now attempt to execute I/O operations with the size a program requests. Microsoft has used Explorer as an example, where the copy command now uses 1MB operations.

Networking

Along with the changes in disk I/O to better maximize disk performance, Vista also implements a new TCP/IP stack - the so-called "Next Generation TCP/IP stack" - that includes new features to better maximize network utilization. However, since networking changes can affect entire networks and not just a single machine, only one of these features - Receive Window Auto-Tuning - is enabled. The other feature - Compound TCP - is disabled due to the potential to interrupt other machines on a network and/or hurt the client's network performance.

To discuss Receive Window Auto-Tuning, we must first quickly talk about TCP/IP networking and what a receive window is. In the most basic of terms, the receive window is the maximum amount of data that a sender can transmit at once before it must wait for an acknowledgement (ACK) from the receiver signaling that the data was received successfully. Once an ACK is received, the sender can begin transmitting more data. This process is intended to keep the sender from flooding the receiver with data, which could cause lost packets and other performance-reducing problems. The ideal size of this window varies upon network conditions and must be continuously renegotiated to maintain a transfer and maximize bandwidth usage; factors include both bandwidth and latency of a connection between two devices. For example, a computer using a dial-up modem can't send or receive data anywhere near as fast as a typical Internet server, so it would seldom have more than about 6 kB of data in-flight at once. Conversely, a high-speed broadband home computer might have several hundred kB of data in transit at once.

With Windows XP, the receive window could be scaled as needed, but it was not a fine-grained system. Except in specific cases, the maximum receive window size was a global value for all TCP connections. While on average it was usually good enough, it could be a poor value for specific connections. This is especially the case on high latency and high bandwidth connections, which is why one common tweak to improve networking performance for Windows machines with a broadband connection is to manually adjust this value - Windows simply didn't allow a window to normally scale to a large enough size to best utilize some broadband connections.

Auto-Tuning is a resolution to the inefficiencies of XP's scaling system, and it makes window scaling a more finely-grained operation. As the ideal receive window size is exactly the amount of data that can be in-flight between a sender and a receiver - the bandwidth-delay product (the product of the speed of a connection and its latency) - Vista's auto-turning system is designed to surpass XP's scaling system by not only allowing larger windows, but by also attempting to make a best-guess on the bandwidth-delay product in order to maximize bandwidth usage. Additionally, this is now a per-TCP connection attribute instead of a global attribute, allowing each connection to be more efficient rather than using the average connection values. As this is a safe optimization (QoS issues notwithstanding), this is one of the networking features enabled by default under Vista.

Compound TCP

The other significant addition to Vista's TCP/IP stack is Compound TCP, the product of an earlier research project by Microsoft in combining several different known techniques for maximizing bandwidth usage under high latency conditions. Under these conditions, traditional TCP traffic algorithms are reliable but slow to let the sender and receiver increase their windows to fill very large bandwidth-delay products. This is because traditional TCP is inherently a conservative and well behaved system based on reliability and sharing as the most important properties.

Compound TCP on the other hand is the merger of several aggressive algorithms - including Fast TCP, High Speed TCP, TCP Vegas, and TCP Reno - which when combined are far more aggressive at trying to quickly maximize bandwidth usage while maintaining reliability; unfortunately, these algorithms weren't originally designed to work all that well with traditional TCP. To that extent, in order to make Compound TCP safe for use on larger networks, Microsoft has reworked these algorithms so that they are effectively a single algorithm under Compound TCP, and their over-aggressive nature has been removed so that they will not dominate over traditional TCP traffic.

The end result is that while Compound TCP is designed to be safe, it's a cutting-edge technology that is not well tested, and for this reason it is disabled by default on Vista. Longhorn Server will be the first Windows product to ship with it enabled by default when it ships later this year. In our network tests, we have tested Vista both with Compound TCP enabled and disabled so that you can see the results of using it; however, until Compound TCP has undergone some more rigorous testing we would caution that it's not advisable to enable it on home computers or in production environments.

Hard Drive Performance and ReadyBoost Networking Performance
Comments Locked

105 Comments

View All Comments

  • redpriest_ - Thursday, February 1, 2007 - link

    Did you guys run the 64-bit tests solely on the Intel Conroe platform? Or did you test an AMD based platform as well? Recall that Conroe has a few performance enhancing features that *only* work in 32-bit mode (branch fusioning, for one - some decoder limitations as well).

    That could explain why a Core 2 Duo system might have seemed slower in 64-bit than in 32-bit mode.
  • Jeff7181 - Thursday, February 1, 2007 - link

    SuperFetch is by far my favorite new feature of Vista. I put my first copy of Vista on my laptop, which has a 5400 RPM hard drive. Opening apps Outlook and VB .NET 2005 EE weren't really slow under XP, but there were those few extra seconds it took to load that would often leave me tapping my finger on the palm rest while I waited. Now under Vista, Outlook, VB .NET 2005 EE, and IE7 all seem to be able to fit in the SuperFetch cache, as they all open nearly instantly with just 1 GB of RAM. I'm considering upgrading to 2 GB just to see what else I can get to open really fast. :D
  • bldckstark - Thursday, February 1, 2007 - link

    Was superfetch disabled when you tried the Readyboost feature in Vista? Whichever way you ran the test it bears mentioning. If it was off, then how does it do with it on? If it was on, it may make a difference in how it relates to XP.

    Also, as I understand it Vista has a system backup now that creates a "ghost" of the drive. Could you check out this feature and get back to us?
  • JarredWalton - Thursday, February 1, 2007 - link

    I'm not sure it's possible to disable SuperFetch, so I'm pretty sure all testing was done with it on. As far as the "ghost" goes, that's part of System Restore which can be disabled quite easily. I'll have to let the other editors say whether it was enabled or not, though.
  • WT - Thursday, February 1, 2007 - link

    What drives me nuts are the plentiful comments about how slow Vista is compared to XP. I mean, anybody hear this before when MS came out with a new OS ? Same thing for XP,W2k,98 ... ad nauseum. Yea, its a new Operating System with more 'toys' built in, what were you expecting ? You aren't gonna load it on your P3/256 RAM rig and enjoy the Vista 'experience'. Damn, this thing runs better than XP on my rig !
    It's understood that it won't be as quick (keep in mind the OS has been available for retail purchase ... 2 days now) as XP, but drivers will improve that performance gap to a smaller number within 3 months time. I waited until just last year to upgrade to XP (W2K all the way for me !) but find myself with 2 copies of Vista and would prefer to dual boot one and go Vista all-out on the other one.
    I griped back in my W2K days about being forced to upgrade due to content (MS games were announced that would only run in XP) so this time around I will be ready.
    DX10? Marketing genius !!! We shall force an upgrade upon the masses !! I upgrade frequently, so DX10 and its graphical splendor is a priority, but if I would have to fork over $200 to actually buy Vista, I would be less than impresssed with DX10 eye candy.
  • EODetroit - Thursday, February 1, 2007 - link

    Hopefully, now, finally, Anandtech will start testing motherboards for stability while loaded with the maximum amount of memory. So if the MB supposedly supports 8GB of RAM, you test it with that much, and make sure its stable. I've wanted this done for years... memory is expensive and it sucks to load a MB up and find out it doesn't really work or only works if you cut the speed in half.

    Thanks.
  • manno - Thursday, February 1, 2007 - link

    ... no mention of DRM then? No mention of Linux? Personally I hate Linux, but I've switched to it because of Vista's use of DRM. Not all Microsoft's fault, but they put it in there... My computer, my hardware, I choose what to do with it, not MS, not media companies. Why shouldn't I be able to watch High def content on my old, and once expensive non-HDMI LCD screen?

    Get a Mac, Apple is the lesser of 2 evils, they aren't the 800lb gorilla in the room. MS could have told media companies to stuff it. Apple has no choice, it's too small, yet their the ones that forced DRM-Light(TM) on the media companies. MS had the media companied force DRM-Oppressive(TM) on them... how the heck does that work?

    I can't believe you left Linux out of the final comparison, is it as capable an OS, yes. Not nearly as user friendly, but it also has 0 DRM, doesn't phone-home isn't beholden to any one entity. I'm not against DRM, as a whole, just Vista's implementation. BS like MS creating D3D to subvert open standards like OpenGL, then removing it from the OS, using it's monopoly-based-ridiculous-margins(TM) to finance D3D's uptake, again rather than take an existing standard and expanding on it. They create their own to reinforce their monopoly. I know why they do this stuff I'm just peeved so many people don't give two flying f...

    grr...
    -manno
  • mlambert890 - Friday, February 2, 2007 - link

    Youre insane dude.. No offense but there just isnt anything else to say. Posts like these always read like the transcript of a Weather Underground meeting in the sixties. "FIGHT THE POWER!!! FIGHT THE POWER!!!"

    Look out! The black helicopters have deployed from the underground helipad in Redmond and are circling!!! Send up the penguin symbol to summon the dynamic duo - Torvald and Stallman!
  • Reflex - Thursday, February 1, 2007 - link

    There is no more or less DRM in Vista than in XP, or even OS X. The platform does not determine the playback of DRM'd media, the content does. The choice is simple: If you want to play back DRM'd media, then you have to support the decryption scheme that the media requires to decode it. In so doing you have to legally accept the limitations defined by that DRM scheme.

    It is no different for OS X, Linux, XP or any other OS. They either support the DRM schemes or they do not get to playback the media that uses them. This is why it is unlikely that you will be able to play DRM'd High Definition content anytime soon on Linux. That is the alternative, no support for the content at all.

    Also, you can play high definition content on Vista just fine without HDMI/HDCP on your monitor. You simply cannot play back such content if it is coupled to a DRM scheme that requires HDCP, but that is true of every OS. Any other HD content will play back without issue.

    Again, there is no difference between DRM on Vista from DRM on any other platform.
  • pmh - Thursday, February 1, 2007 - link

    The DRM in vista is the major reason that I will only install it if physically forced to. Having bought a new Dell in order to get their very nice 24" LCD last december, I have an upgrade coupon which will lie unused until/unless the DRM can be disabled. MS refuses to display HD on my new monitor using Vista? Screw em.

Log in

Don't have an account? Sign up now