HDD Thrashing With Svchost.exe and Superfetch....

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

BD2003

Lifer
Oct 9, 1999
16,815
1
76
Originally posted by: VirtualLarry
Here's a good question: What good will superfetch do me, if I'm working with 4+ GB files that push everything else out of the filesystem cache. I assume that it would also dump the superfetch cache, which would mean that either: 1) Superfetch would be useless, once this happens, until a reboot, or 2) Superfetch would attempt to reload the superfetch cache after a certain point, dumping my filesystem cache.

Your basic assumption/understanding of how it works is a bit off. Theres really no segmentation between "superfetch cache" and "file cache". Superfetch is just the process that manages the cache, and it runs continuously. It's not as if it's determining on boot which files will be cached and limiting it to only those files - it just gets a running start with those files and then manages from there.

Superfetch has several levels of priority. On boot, its going to completely fill your memory as best it can, to get off to a good start. But as you use your PC, it will use a good chunk of the cache for recent file I/O just like windows XP did, cause thats obviously still a useful thing at times. But it won't completely flush out your cache with recent file I/O - it will save quite a bit for the precached stuff it knows you use all the time.

On the few occasions that I've seen it dump part of the cache to load a different set of files (those which I use at that time of the day), it dumped half at most, and only while I was idle for several minutes...I just happened to be at my computer not touching the mouse at the time, and I saw it happen on a resource monitor program I use (samurize). For all I know, it does it all the time when I'm not around.

Superfetch is supposed to have some sort of logic as to determine what not to bother caching, such as the I/O from a virus scan or defrag. How exactly it determines what to cache or not, I'm not entirely sure, maybe by the process thats carrying it out, but I do know one aspect of it is that it does take into account whether youre idle (not using the mouse/kb I assume), and won't flush the cache with useless defrag I/O in that situation.

The problem that I see is that a lot of stuff that I do is I/O-bound, and the additional overhead, even if it were at a low priority, of 2GB worth of I/O would still slow down my processes, as far as I can see.

Well, there isnt any overhead, aside from perhaps the initial precache at boot. But you shouldnt have to reboot very often anyway...just put it to sleep. It's not going to start dumping and caching while you're doing heavy I/O, light I/O or near zero I/O (playing a game/browsing the web). I've literally seen it dump partially maybe twice since Vista was released.

I guess if/when I finally adopt Vista, I'll turn off superfetch. I honestly don't see the utility of it, above and beyond the filesystem cache. (Recently opened programs would still be in the filesystem cache, and load instantly anyways without superfetch. And if they weren't, the I/O time is going to be the same whether or not I cause the app to be loaded or if superfetch pre-loads the app. It's the HD speed itself that is the bottleneck.)

But if you're doing heavy I/O that far exceeds your memory capacity, recently opened programs wont be in the file system cache, because without superfetch to keep those heavily used files there, they'll just get flushed out.

The only time the I/O time is going to be the same is if you preload a frequently used program or files before it's done precaching after boot. Superfetch can't load the app any faster than you from the HD obviously, but thats the entire point - its already there for you in cache when youre ready to use it, removing the HD bottleneck.

Also, keep in mind that it isnt really working on a file basis, but on clusters. Even if you have 2GB of memory and youre working with 4GB files, if you access certain clusters of that file very frequently, it's going to favor keeping them in cache. I've seen it load a chunk of WoW, a chunk of C&C 3, and a chunk of Oblivion (all bits of huge several GB files), most likely startup files and parts of the game like your own character model thats ALWAYS resident - all alongside a whole bunch of other frequently used stuff.

It's taking everything that can go wrong into account...I really cant think of a single realistic situation where you'd actually gain anything by turning it off. How much you gain by having it on depends on how and for what you use your computer...it can range from slight to huge.

For instance, on my HTPC, I run 2 fairly large programs (Mediaportal and GameEx). They do not work well with each other when both are loaded at the same time (each wants exclusive access to DX9). So I have to constantly open and close them. So say I'm using XP, and I play a few games. I quit GX to load MP, which takes at least 10-20 seconds to load off the HD. I watch a HD movie ( 4GB+), record a show, etc, and that completely flushes GX out of cache. I quit MP to load GX, and it takes a good 10-20 seconds to load that back. And so on, and so on. Once I upgraded the HTPC to Vista, everything just loads back and forth in a snap (1-2 secs, CPU bound), because it knows those are the two programs I use more than anything else, and it just will not let them out of cache, no matter how much I/O I run through. Its a HUGE difference for me there. And I even only have 1GB of memory in it...XP couldnt reliably pull that off with several GB.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,541
10,167
126
Originally posted by: BD2003
For instance, on my HTPC, I run 2 fairly large programs (Mediaportal and GameEx). They do not work well with each other when both are loaded at the same time (each wants exclusive access to DX9). So I have to constantly open and close them. So say I'm using XP, and I play a few games. I quit GX to load MP, which takes at least 10-20 seconds to load off the HD. I watch a HD movie ( 4GB+), record a show, etc, and that completely flushes GX out of cache. I quit MP to load GX, and it takes a good 10-20 seconds to load that back. And so on, and so on. Once I upgraded the HTPC to Vista, everything just loads back and forth in a snap (1-2 secs, CPU bound), because it knows those are the two programs I use more than anything else, and it just will not let them out of cache, no matter how much I/O I run through. Its a HUGE difference for me there. And I even only have 1GB of memory in it...XP couldnt reliably pull that off with several GB.
That does sound fairly impressive, but I'm surprised that you are quoting 10-20 seconds just to load a program in the comparison case. Does that program do some sort of hardware initialization, because I've never had a program load that slowly. Unless it loads some sort of huge datafile along with it or something. I don't think that I have any programs that take that long to load. Large files, on the other hand, do take some time.
 

Sithtiger

Member
Apr 4, 2005
177
0
76
Originally posted by: BD2003
I still have it set to IDE mode because every hard drive review I've seen has shown slower performance with NCQ on for single user usage - it would just be overhead in that case since theres not enough conflict that it could come in handy. Although I do remember reading something about Vista's file I/O and NCQ working together in some way, so if you say its faster, I'll certainly take your word. I dont really put much stock in Vista's benchmarking though.

My bios is a bit confusing about it though - theres an entry for AHCI mode, and an entry for Native/Legacy IDE mode, and I'm not sure of the purpose or difference between them.

I think you basically said what the difference was. SATA has NCQ and IDE doesn't. I heard that too about the overhead of SATA drives, but like I said, BF2142 installed at least 2 to 3 minutes faster when I had it set to AHCI vs IDE. Also, for some reason XP seemed slower on this new system than my older X2 4400+ system. I'm thinking it had something to do with the IDE mode set in the BIOS. I don't know why it would slow XP down, but that's the only thing I can think of. My XP install was running stable, it did seem a bit slow.

On the other hand Vista x64, even in IDE mode seemed very fast. I don't put much stock either in MS's rating system, but I can definitely see a difference in installing games! I haven't played much at all, maybe one game of BF2142 and of course the first time you run it, it has to optimize the shaders. I did however just install HL2/CSS and it seemed to install quicker as well. It's a little more difficult to tell because it comes on 5 CD's vs 1 DVD with BF2142....at least that's the version I have of HL2/CSS, still I believe it was faster too, so I would say from my experience, ACHI mode is definitely faster than IDE. The general Vista experience, like say loading programs....it's just as fast as with IDE. I don't see it loading programs faster or slower. Because of Superfetch, they load almost instantaneous depending on what you're loading.


 

BD2003

Lifer
Oct 9, 1999
16,815
1
76
Originally posted by: VirtualLarry
Originally posted by: BD2003
For instance, on my HTPC, I run 2 fairly large programs (Mediaportal and GameEx). They do not work well with each other when both are loaded at the same time (each wants exclusive access to DX9). So I have to constantly open and close them. So say I'm using XP, and I play a few games. I quit GX to load MP, which takes at least 10-20 seconds to load off the HD. I watch a HD movie ( 4GB+), record a show, etc, and that completely flushes GX out of cache. I quit MP to load GX, and it takes a good 10-20 seconds to load that back. And so on, and so on. Once I upgraded the HTPC to Vista, everything just loads back and forth in a snap (1-2 secs, CPU bound), because it knows those are the two programs I use more than anything else, and it just will not let them out of cache, no matter how much I/O I run through. Its a HUGE difference for me there. And I even only have 1GB of memory in it...XP couldnt reliably pull that off with several GB.
That does sound fairly impressive, but I'm surprised that you are quoting 10-20 seconds just to load a program in the comparison case. Does that program do some sort of hardware initialization, because I've never had a program load that slowly. Unless it loads some sort of huge datafile along with it or something. I don't think that I have any programs that take that long to load. Large files, on the other hand, do take some time.

Yeah, when I do load MP after its been cached, the one step it slows down on enough for me to read on the splash screen is initializing DirectX. Both have huge databases of files to parse and create etc. Its probably a lot closer to 10 seconds than 20 seconds, but it was always be far too long, and stuff like torrents in the background would make even coming back to the same open program a few hours later sluggish. Its really a night and day difference between the two.
 

Sithtiger

Member
Apr 4, 2005
177
0
76
Hey BD2003, was or you or someone else who said Superfetch always takes the same amount of time to fill up the cache? In any case, I wanted to ask you something. As I said earlier, I just installed HL2 and CSS. That didn't seem to lengthen the time it takes to fill up the cache and stop the HDD trashing. I just updated Vista with the KB929735 update and because of that update alone it takes an additional 1:30 minutes for Superfetch to do it's thing.

I know this shouldn't matter and like I said, I don't recall if you said this or someone else on a different forum. I'm just wondering if Superfetch will take long and longer to cache everything in available memory because someone told me that it always takes the same amount of time everytime and it doesn't change and that's not true. The point is, it's going to take longer and longer for Superfetch to do it's thing the more programs installed on your computer. I would think it would be just the opposite. The more Superfetch runs, it's supposed to speed things up over time....correct. Is it just taking longer because I just reinstalled Vista and it calm down after I stop installing a bunch of stuff? Just trying to find out what's what.
 

BD2003

Lifer
Oct 9, 1999
16,815
1
76
Originally posted by: Sithtiger
Hey BD2003, was or you or someone else who said Superfetch always takes the same amount of time to fill up the cache? In any case, I wanted to ask you something. As I said earlier, I just installed HL2 and CSS. That didn't seem to lengthen the time it takes to fill up the cache and stop the HDD trashing. I just updated Vista with the KB929735 update and because of that update alone it takes an additional 1:30 minutes for Superfetch to do it's thing.

I know this shouldn't matter and like I said, I don't recall if you said this or someone else on a different forum. I'm just wondering if Superfetch will take long and longer to cache everything in available memory because someone told me that it always takes the same amount of time everytime and it doesn't change and that's not true. The point is, it's going to take longer and longer for Superfetch to do it's thing the more programs installed on your computer. I would think it would be just the opposite. The more Superfetch runs, it's supposed to speed things up over time....correct. Is it just taking longer because I just reinstalled Vista and it calm down after I stop installing a bunch of stuff? Just trying to find out what's what.

You should only really notice it on boot, or after closing a huge app that leaves a lot of free memory afterwards. (such as a game)

Also, I did notice one thing - it wont completely fill your drive on your very first boot into vista, because it doesnt know what to preload. Maybe now that youve installed a few apps, each successive reboot it seems to take longer and longer since its now able to preload more. If you use lots of programs, it may have to hunt and seek over much more of the drive to get the data it needs, and that kind of random access on a HD is just going to take longer, but I'd imagine that would average over of time and there would come a point where it will take basically the same amount of time each boot.

If its just taking longer to boot each time, its more than likely that actual programs are just taking longer to load...superfetch doesnt start doing its thing until everything else starting up on boot is finished loading...it will make loading programs faster, but wont make booting any faster.

Also, installing any update makes the next boot take MUCH longer. What youre experiencing probably has nothing to do with superfetch.
 

Sithtiger

Member
Apr 4, 2005
177
0
76
Originally posted by: BD2003
You should only really notice it on boot, or after closing a huge app that leaves a lot of free memory afterwards. (such as a game)

Also, I did notice one thing - it wont completely fill your drive on your very first boot into vista, because it doesnt know what to preload. Maybe now that youve installed a few apps, each successive reboot it seems to take longer and longer since its now able to preload more. If you use lots of programs, it may have to hunt and seek over much more of the drive to get the data it needs, and that kind of random access on a HD is just going to take longer, but I'd imagine that would average over of time and there would come a point where it will take basically the same amount of time each boot.

If its just taking longer to boot each time, its more than likely that actual programs are just taking longer to load...superfetch doesnt start doing its thing until everything else starting up on boot is finished loading.

Also, installing any update makes the next boot take MUCH longer. What youre experiencing probably has nothing to do with superfetch.

Thanks....no it doesn't actually take longer and longer with each, but whenever either I install something, or Windows installs something, the time increases. Actually, I should say something that's substantially large. I uninstalled that update and it didn't make a difference. I believe it was installing HL2 and CSS along with HL2DM and updates with those games that causes it take longer.

Like you said earlier though, it's no biggie because programs take high priority while it takes low priority. It just bugs me that's all. I just remember trying to run that UTIII trailer and it jumped a couple times. Maybe Vista wasn't even fully booted yet. I'm gonna try to run it again because while I can get used to the HD thrashing, it will tick me off if I have to wait to say, play a clip because Superfetch gets in the way of it.
 

BD2003

Lifer
Oct 9, 1999
16,815
1
76
Originally posted by: Sithtiger
Originally posted by: BD2003
You should only really notice it on boot, or after closing a huge app that leaves a lot of free memory afterwards. (such as a game)

Also, I did notice one thing - it wont completely fill your drive on your very first boot into vista, because it doesnt know what to preload. Maybe now that youve installed a few apps, each successive reboot it seems to take longer and longer since its now able to preload more. If you use lots of programs, it may have to hunt and seek over much more of the drive to get the data it needs, and that kind of random access on a HD is just going to take longer, but I'd imagine that would average over of time and there would come a point where it will take basically the same amount of time each boot.

If its just taking longer to boot each time, its more than likely that actual programs are just taking longer to load...superfetch doesnt start doing its thing until everything else starting up on boot is finished loading.

Also, installing any update makes the next boot take MUCH longer. What youre experiencing probably has nothing to do with superfetch.

Thanks....no it doesn't actually take longer and longer with each, but whenever either I install something, or Windows installs something, the time increases. Actually, I should say something that's substantially large. I uninstalled that update and it didn't make a difference. I believe it was installing HL2 and CSS along with HL2DM and updates with those games that causes it take longer.

Like you said earlier though, it's no biggie because programs take high priority while it takes low priority. It just bugs me that's all. I just remember trying to run that UTIII trailer and it jumped a couple times. Maybe Vista wasn't even fully booted yet. I'm gonna try to run it again because while I can get used to the HD thrashing, it will tick me off if I have to wait to say, play a clip because Superfetch gets in the way of it.

Well, low priority can never be perfect when you're dealing with a mechanical device like a HD, but that stuttering could have been caused by many other things. My best advice to you is to just not reboot/shutdown unless you really, really have to (update, driver or app install forces you to), and then you wont have those problems, because you wont always be going through the boot precache cycle. Vista isnt like Win98 where you have to reboot every other day or it gets unstable...unless your sleep mode isnt working, thats what you should be using.
 

Sithtiger

Member
Apr 4, 2005
177
0
76
Originally posted by: BD2003
Well, low priority can never be perfect when you're dealing with a mechanical device like a HD, but that stuttering could have been caused by many other things. My best advice to you is to just not reboot/shutdown unless you really, really have to (update, driver or app install forces you to), and then you wont have those problems, because you wont always be going through the boot precache cycle. Vista isnt like Win98 where you have to reboot every other day or it gets unstable...unless your sleep mode isnt working, thats what you should be using.

I found out the cause of the stuttering...sigh....I'm so impatient! When I ran the trailer again, I noticed that it stuttered at the exact same points it did originally. I disabled Superfetch and rebooted and that left me with all but 500MB of my memory since Superfetch wasn't caching anything. So, guess what, it still did it.

I found out that it was just the video. I played some other trailers I had like Call of Duty 4 with Superfetch on and deliberately ran them while it was doing it's thing and nothing....they ran smooth as butter! So it doesn't interfere with anything, not even running videos off the hard drive and it were going to interfere with something, that would be it since it's using the hard drive too.

Oh and one other thing, Superfetch knocked off 30 seconds of it's time to cache my RAM. It's optimizing itself better now and while I'm not sure exactly how long it was taking before, I believe it was around 5 minutes and I had allot more stuff on....mostly games though. It does just take a while to optimize everything. When I turned Superfetch off, I did notice about a 15 to 20% decrease in speed of opening up programs. It was still much faster than XP, but it was noticeably slower than when it was enabled.
 

lopri

Elite Member
Jul 27, 2002
13,212
597
126
I'm in love/hate relationship with the SuperFetch. Love, well, that is kinda obvious because it's one of the most heavily advertised feature of Vista. Then again, every time after I multi-task heavily (mostly virtual OSes and games) I have to deal with the HDD noise. With multiple HDDs in RAID, the disk activity is even more lively. I wonder it'll affect the reliability of HDD in the long run? Obviously it should since I have a lot of RAM (see sig) and my disks are constantly accessed in a varying degree, depending upon my application usages. (RAID'ed Raptors..) It surely is nice though when I can have a couple virtual OSes running, as well as encode a movie clip for my Zune, and play Oblivion at the same time. Sometimes I throw in Super Pi 32M in the mix just for a kick. :laugh: Games launch without accessing hardware and I rarely experience stutters, but hard disks are accessed as soon as I get out of the games. lol.

With 4GB of RAM, it took less than a few hours for Vista to use up the whole capacity. But with 8GB, it took a few more days until it *learns*. Even today, for whatever reason, the SuperFetch doesn't take up the whole 8GB at boot-up. It fills up *only* 7GB of memory if it's left alone. (but of course it eats the remaining 1GB within minutes of usage) Weird.
 

lopri

Elite Member
Jul 27, 2002
13,212
597
126
And SuperFetch's low priority certainly isn't perfect. When I have to reboot I usually leave the SuperFetch do its thing for like 5 mins, instead of interrupting it. If anyone doesn't believe it - try running some memory/disk intensive benchmarks right after the system boot. You will see significantly lower scores.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
And SuperFetch's low priority certainly isn't perfect.

It's impossible to be perfect because disk I/O latencies are so high compared to everything else. Switching processes takes a few microseconds so you can easily see the effects of process priorities. But a disk read will take however many milliseconds it takes to seek to that spot on disk plus the time to do the actual read. And I don't think you can stop I/O once it's been submitted to the disk so when a higher priority request comes in you still have to wait for any outstanding I/Os to finish.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
that spot on disk plus the time to do the actual read. And I don't think you can stop I/O once it's been submitted to the disk so when a higher priority request comes in you still have to wait for any outstanding I/Os to finish.

With IDE you pretty much need to wait for the IO to finish (at some point) but with SCSI and SATA and command ordering and aborting you have more control...
 

BD2003

Lifer
Oct 9, 1999
16,815
1
76
Originally posted by: lopri
I'm in love/hate relationship with the SuperFetch. Love, well, that is kinda obvious because it's one of the most heavily advertised feature of Vista. Then again, every time after I multi-task heavily (mostly virtual OSes and games) I have to deal with the HDD noise. With multiple HDDs in RAID, the disk activity is even more lively. I wonder it'll affect the reliability of HDD in the long run? Obviously it should since I have a lot of RAM (see sig) and my disks are constantly accessed in a varying degree, depending upon my application usages. (RAID'ed Raptors..) It surely is nice though when I can have a couple virtual OSes running, as well as encode a movie clip for my Zune, and play Oblivion at the same time. Sometimes I throw in Super Pi 32M in the mix just for a kick. :laugh: Games launch without accessing hardware and I rarely experience stutters, but hard disks are accessed as soon as I get out of the games. lol.

I wouldnt worry about the disk life - disks are meant to be used and can handle it. And besides, if the entire point of superfetch is to preload things so they can be loaded off of memory, it would actually make sense that averaged over time, you'd have accessed the disk less. It is pretty sweet to have games launch from memory without all the slow crunchiness that I've been used to all these years.

With 4GB of RAM, it took less than a few hours for Vista to use up the whole capacity. But with 8GB, it took a few more days until it *learns*. Even today, for whatever reason, the SuperFetch doesn't take up the whole 8GB at boot-up. It fills up *only* 7GB of memory if it's left alone. (but of course it eats the remaining 1GB within minutes of usage) Weird.

That remaining 1gb is probably eaten up by the recent file cache from what you start doing within those first minutes..maybe you just dont have 8gb of stuff you use often enough for it to completely fill it at start?

And SuperFetch's low priority certainly isn't perfect. When I have to reboot I usually leave the SuperFetch do its thing for like 5 mins, instead of interrupting it. If anyone doesn't believe it - try running some memory/disk intensive benchmarks right after the system boot. You will see significantly lower scores.

I wouldnt bother leaving it alone because benchmarks show it as being slower. Benchmarks are meant to be used in isolation. Unless you have an actual need to benchmark it like that, just use it...whatever it is that you actually want to load is probably something you use often, and probably one of the first things SF will put into memory, so slower HD speeds shouldnt affect loading them - they should come straight from memory. I've fired up games immediately after boot, and although they didnt load as fast as normal because they werent preloaded, there wasnt any stuttering or serious slowdown in the actual game.

With dual raptors, you might have some trouble hearing the game though.


It's impossible to be perfect because disk I/O latencies are so high compared to everything else. Switching processes takes a few microseconds so you can easily see the effects of process priorities. But a disk read will take however many milliseconds it takes to seek to that spot on disk plus the time to do the actual read. And I don't think you can stop I/O once it's been submitted to the disk so when a higher priority request comes in you still have to wait for any outstanding I/Os to finish.

Yep, thats the problem. Id imagine having NCQ on can go some way towards helping the problem, but until we're on solid state discs, I/O priority can't be perfect.

My major peeve with the I/O priority isnt the speed, but that you cant control it like process priority within task manager. AFAIK, it has to be hard coded into the program, so I have my doubts that anything but OS components are actually using it. But superfetch, indexing and defrag are three heavy I/O proceses that do work much better with it.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
With IDE you pretty much need to wait for the IO to finish (at some point) but with SCSI and SATA and command ordering and aborting you have more control...

True but even if the command is long enough that an abort would be quicker the latency will still be high enough for someone to notice.

My major peeve with the I/O priority isnt the speed, but that you cant control it like process priority within task manager. AFAIK, it has to be hard coded into the program, so I have my doubts that anything but OS components are actually using it. But superfetch, indexing and defrag are three heavy I/O proceses that do work much better with it.

Well they only created 5 different priorities and of those only 3 are used right now, excepting the Critical priority that's only used by the memory manager, so the amount of control would be pretty limited even if you could adjust them manually. I believe I read that whether the process is in the foreground or background is taken into account so that foreground processes can be more responsive but that's about it AFAIK. In Linux the cfq I/O scheduler takes the processes' nice value into consideration so that higher priority processes also have a higher I/O priority so you do have a decent amount of control just like you do with the CPU scheduler.
 

BD2003

Lifer
Oct 9, 1999
16,815
1
76
Originally posted by: Nothinman
Well they only created 5 different priorities and of those only 3 are used right now, excepting the Critical priority that's only used by the memory manager, so the amount of control would be pretty limited even if you could adjust them manually. I believe I read that whether the process is in the foreground or background is taken into account so that foreground processes can be more responsive but that's about it AFAIK. In Linux the cfq I/O scheduler takes the processes' nice value into consideration so that higher priority processes also have a higher I/O priority so you do have a decent amount of control just like you do with the CPU scheduler.

I just gave it a try, checking the I/O priority with process monitor, and foreground/background/minimized etc made no difference. Defrag, superfetch, defender and indexer are indeed "very low" priority, but a kapersky scan ran at normal priority even when closed to the system try, along with everything else that wasnt hardcoded to use i/o priority.

Having it automatically user a higher priority for the foreground app would pretty much be all you'd need, but it doesnt seem to actually work that way. It'd at least be nice if they could lock the i/o priority to the process priority so youd have some control over it. Its strange that they dont let users control this, it doesnt seem to be a technical hurdle...hopefully in the next release of windows.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Originally posted by: BD2003
Originally posted by: Nothinman
Well they only created 5 different priorities and of those only 3 are used right now, excepting the Critical priority that's only used by the memory manager, so the amount of control would be pretty limited even if you could adjust them manually. I believe I read that whether the process is in the foreground or background is taken into account so that foreground processes can be more responsive but that's about it AFAIK. In Linux the cfq I/O scheduler takes the processes' nice value into consideration so that higher priority processes also have a higher I/O priority so you do have a decent amount of control just like you do with the CPU scheduler.

I just gave it a try, checking the I/O priority with process monitor, and foreground/background/minimized etc made no difference. Defrag, superfetch, defender and indexer are indeed "very low" priority, but a kapersky scan ran at normal priority even when closed to the system try, along with everything else that wasnt hardcoded to use i/o priority.

Having it automatically user a higher priority for the foreground app would pretty much be all you'd need, but it doesnt seem to actually work that way. It'd at least be nice if they could lock the i/o priority to the process priority so youd have some control over it. Its strange that they dont let users control this, it doesnt seem to be a technical hurdle...hopefully in the next release of windows.

Well I don't believe taskmgr shows you the dynamic CPU priority either so it's possible that I/O also gets a boost but the final priority just isn't shown in taskmgr just like CPU priority.
 

BD2003

Lifer
Oct 9, 1999
16,815
1
76
Originally posted by: Nothinman
Originally posted by: BD2003
Originally posted by: Nothinman
Well they only created 5 different priorities and of those only 3 are used right now, excepting the Critical priority that's only used by the memory manager, so the amount of control would be pretty limited even if you could adjust them manually. I believe I read that whether the process is in the foreground or background is taken into account so that foreground processes can be more responsive but that's about it AFAIK. In Linux the cfq I/O scheduler takes the processes' nice value into consideration so that higher priority processes also have a higher I/O priority so you do have a decent amount of control just like you do with the CPU scheduler.

I just gave it a try, checking the I/O priority with process monitor, and foreground/background/minimized etc made no difference. Defrag, superfetch, defender and indexer are indeed "very low" priority, but a kapersky scan ran at normal priority even when closed to the system try, along with everything else that wasnt hardcoded to use i/o priority.

Having it automatically user a higher priority for the foreground app would pretty much be all you'd need, but it doesnt seem to actually work that way. It'd at least be nice if they could lock the i/o priority to the process priority so youd have some control over it. Its strange that they dont let users control this, it doesnt seem to be a technical hurdle...hopefully in the next release of windows.

Well I don't believe taskmgr shows you the dynamic CPU priority either so it's possible that I/O also gets a boost but the final priority just isn't shown in taskmgr just like CPU priority.

Oh no, this is process manager, not task manager (you cant see io priority with taskman) It shows you damn everything including io priority, not per-process, but per-transaction.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Oh no, this is process manager, not task manager (you cant see io priority with taskman) It shows you damn everything including io priority, not per-process, but per-transaction.

Do you mean Process Monitor or Process Explorer? And does it show you the dynamic runtime priority? For instance in Linux each process has a base priority, the nice level, and the final runtime priority which is calculated each run based on the behavior patterns of the process to keep things as fair as possible. I would assume that Windows does a similar thing with CPU time and possibly now with I/O.
 

BD2003

Lifer
Oct 9, 1999
16,815
1
76
Process monitor. See here:

http://www.microsoft.com/techn...px?pf=true&side=true#3

I had it only showing I/O transactions, but I modified the process priority in taskman at the same time...had no effect. If foreground/background/process priority was going to have an affect, it should have definitely shown up.

As far as I can still tell, I/O priority is nothing like process priority - it has to be entirely hardcoded...I saw some whitepaper where they went into detail as to how to do it.

I wouldnt expect something like that to gain widespread adoption for quite some time.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Process monitor. See here:

Ok, you said process manager first which confused me. =)

As far as I can still tell, I/O priority is nothing like process priority - it has to be entirely hardcoded...I saw some whitepaper where they went into detail as to how to do it.

Yea from that pic I'd say you're right, it's statically set when you either open the file or issue the read which is pretty retarded. And I can never find anything useful on MSDN so I can't even figure out how to change the I/O priority of a process.

I wouldnt expect something like that to gain widespread adoption for quite some time.

And I doubt it will because they only honor the low priority levels right now and only a handful of specialized apps are going to want to lower their I/O priority.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,541
10,167
126
Something like "high" priority would be useful for DVD-burning. I have problems with the buffer emptying while I'm doing other high-I/O tasks in XP, like shrinking a DVD.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Something like "high" priority would be useful for DVD-burning. I have problems with the buffer emptying while I'm doing other high-I/O tasks in XP, like shrinking a DVD.

Or your DVD shrinking app could use low priority which is what will have to happen since Vista doesn't support High priority I/O.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |