ryoken

Server 2003's "Enable Advanced Performance"

Recommended Posts

Recently installed Windows Server 2003 and came across an option labelled: "Enable Advanced Performance". This is located in device manager -> open properties for one of your hard drives -> Policies tab. You should see the "Enable Advanced Performance" checkbox at the bottom of this dialog box.

Can anyone explain what this feature/option is and what it does? What level of extra performance should I expect to gain?

Share this post


Link to post
Share on other sites
This will enable write caching to your hard drive. Read this recent thread for more information.

But the option for "Enable writing caching on disk" is already enabled by default. The "Enable Advanced Performance" option is in ADDITION to the write caching option (just below "Enable writing caching on disk" checkbox).

Share this post


Link to post
Share on other sites

I think it was the solution implemented in Win2003 for the 'XP SCSI performance bug'.

Before XP and Win2k SP3, there was a bug in the code that wasn't honouring application requests to bypass write caching (which was done to improve data integrity). When the bug was fixed in XP and 2k SP 3, some applications (including Windows file copying) observed lowered performance. This led people to believe there was a bug in XP, when in fact it was a bug correction. The problem is, many didn't like the reduced performance.

Enabling the option reverts to the old behaviour of ignoring application requests to bypass write caching.

Share this post


Link to post
Share on other sites
I think it was the solution implemented in Win2003 for the 'XP SCSI performance bug'.

oic... i guess then, it wouldn't make much of a difference if using ATA hard drives. wouldn't hurt to turn it on, would it?

Share this post


Link to post
Share on other sites

I decided i wanted to test those features on one of our ibm servers.

The configuration is as follows: IBM xseries 335, 2x 2.0Ghz XEON HT, 2.5GB ram, 2x IBM SCSI Ultra160 disks 10.000RPM running Raid1

Before i changed any of the standard settings for the SCSI drive.

before.JPG

After i set the function to enable write cache

after.JPG

After i set the advanced setting(advices you to have a ups on the machine)

after2.JPG

all i can say is.. WOW what a difference. :D

Darking

Share this post


Link to post
Share on other sites
all i can say is.. WOW what a difference. :D

I'm definately spellbound... "Enable Advanced Performance" really made an amazing difference!

Just curious though, what settings did you use in the first instance, ie. before you changed any of the standard settings? Did those standard settings include "Enable Write Cache" unchecked (disabled)? Was the radio button for Optimise for Performance selected and greyed out?

Thanks for those screen shots Darking! :lol:

Share this post


Link to post
Share on other sites

Yes they were. ;)

It was greyed out at the performance radio button.

The first screenshot was without any activation of anything..

The second was with write caching activated (gave alot lower performance in atto)

and the third was with the activated settings.

The second setting puzzles me a bit, but it might be a driver issue or something?

Darking

Share this post


Link to post
Share on other sites

Hmm... that's strange. One would assume enabling writing caching would improve performance, not decrease it. I haven't tried disabling write caching though.

I did some quick disk benchmarks trying to check the difference between enabling and disabling advanced performance. I used a different disk benchmarking program than yours (and disk as well!!!) - only differences between whether enabling or disabling that feature can be observed.

Not sure if you've heard of it, but I used this program called DskBench v2.12 (mainly used to "measure disk performance for massive multi-file applications like multitrack digital audio programs"). This test was run on an old Quantum Fireball CX 6.4A drive.

Before "Enable Advanced Performance":

DskBench 2.12

© 1998, SESA, J.M.Catena (cat@sesa.es, www.sesa.es)

Timer Check = 1000 (should be near 1000)

CPU Check = 50.32 % (should be near 50.00 %)

CPU index (relative to Pro 200 MHz) = 5.862084

Open = 0 ms

Write = 19594 ms, 13.07 MB/s, CPU = 3.57 %

Flush = 32 ms

Rewin = 0 ms

Read = 19234 ms, 13.31 MB/s, CPU = 2.13 %

Close = 0 ms

BlockSize = 131072, MB/s = 7.03, Tracks = 83.53, CPU = 2.17 %

BlockSize = 65536, MB/s = 4.12, Tracks = 48.97, CPU = 2.90 %

BlockSize = 32768, MB/s = 2.64, Tracks = 31.43, CPU = 2.35 %

BlockSize = 16384, MB/s = 1.55, Tracks = 18.40, CPU = 2.56 %

BlockSize = 8192, MB/s = 0.84, Tracks = 10.05, CPU = 2.47 %

BlockSize = 4096, MB/s = 0.63, Tracks = 7.47, CPU = 2.75 %

After "Enable Advanced Performance":

DskBench 2.12

© 1998, SESA, J.M.Catena (cat@sesa.es, www.sesa.es)

Timer Check = 1000 (should be near 1000)

CPU Check = 50.25 % (should be near 50.00 %)

CPU index (relative to Pro 200 MHz) = 5.913693

Open = 0 ms

Write = 21484 ms, 11.92 MB/s, CPU = 10.11 %

Flush = 0 ms

Rewin = 0 ms

Read = 18172 ms, 14.09 MB/s, CPU = 2.98 %

Close = 0 ms

BlockSize = 131072, MB/s = 6.25, Tracks = 74.29, CPU = 3.62 %

BlockSize = 65536, MB/s = 4.09, Tracks = 48.62, CPU = 3.20 %

BlockSize = 32768, MB/s = 2.70, Tracks = 32.08, CPU = 3.35 %

BlockSize = 16384, MB/s = 1.56, Tracks = 18.60, CPU = 3.37 %

BlockSize = 8192, MB/s = 0.86, Tracks = 10.28, CPU = 3.29 %

BlockSize = 4096, MB/s = 0.61, Tracks = 7.21, CPU = 3.53 %

As you can see, there's not too much difference between the two (except increased CPU usage). Perhaps this is because I'm using an ATA drive. If a SCSI drive was used, there might be significant differences.

I'm not too sure how valid the results from this program are (at least under Windows Server 2003). Also, I don't think this benchmarking program is as popular as ATTO (at least around here). So the validity of the above results could be questioned.

Notwithstanding, the system doesn't appear or feel much faster or slower than before I turned on "Enable Advanced Performance" (my subjective opinion).

Comments welcome! :)

Share this post


Link to post
Share on other sites

Standard IDE controllers don't support the command to bypass write caching. Write caching can be disabled on a per-drive basis, but when applications request to bypass it, it doesn't happen. So with IDE drives the behaviour is always the same as Advanced Performance option enabled (when write caching is enabled).

Share this post


Link to post
Share on other sites
Standard IDE controllers don't support the command to bypass write caching.  Write caching can be disabled on a per-drive basis, but when applications request to bypass it, it doesn't happen.  So with IDE drives the behaviour is always the same as Advanced Performance option enabled (when write caching is enabled).

Ahh! That explains it :D

Thanks Chew!

Share this post


Link to post
Share on other sites

i just turned on my win2k enterprise server test server to see this checkbox which i never saw before.

to my surprise, there isn't any checkbox in "policies"!, and the two radio buttons(optimzed for removal/performance) are greyed out(with performance selected).

the machine has a SMART-2SL controller with 2 SCSI disks in RAID 1

the disk appears as a "disk array device", maybe that's why i didn't saw it

Share this post


Link to post
Share on other sites
i just turned on my win2k enterprise server test server to see this checkbox which i never saw before.

For Win2k, you need dskcache.exe. This checkbox is strictly a Win2k3 thing.

Share this post


Link to post
Share on other sites
to my surprise, there isn't any checkbox in "policies"!, and the two radio buttons(optimzed for removal/performance) are greyed out(with performance selected).

the machine has a SMART-2SL controller with 2 SCSI disks in RAID 1

the disk appears as a "disk array device", maybe that's why i didn't saw it

RAID controllers with onboard cache would typically disable the physical drive cache and use it's own to meet any caching requirements. They don't allow direct access to the SCSI drive or it's drive cache. That's why you don't see it.

I guess it's possible to implement access/usage of the drive cache through the driver in such a way that the standard 'policies' screen could be used to manage it.

Share this post


Link to post
Share on other sites
Know this is an old topic, but wanted to spread the word about not using this setting:

Windows Confidential - The Power of Bugs (April 2007 issue of TechNet Magazine)

thanks snakefoot - that was a great article! Microsoft certainly has a knack for jargon - the euphemistically named "Enable Advanced Performance" translates to restore old buggy behaviour in Windows 3.11's "32-bit file access" of ignoring requests to flush file buffers onto disk. At least Windows 95's "Disable Synchronous Buffer Commits" sounded a bit more honest! :angry:

Edited by ryoken

Share this post


Link to post
Share on other sites
At least Windows 95's "Disable Synchronous Buffer Commits" sounded a bit more honest! :angry:

Yes the option name "Enable Advanced Performance" doesn't give any clue of what it actually mean. Though I'm not sure that Raymond Chen is correct about the setting being there because of a previous flaw in Win2k3.

Found this article MS KB Q324446, which actually encourage to enable the setting if needing high disk performance, and have measures implemented in case of power loss.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now