Superfetch

WITH MY REQUIREMENTS IN MIND, should 'Superfetch' be:

  • Enabled

    Votes: 66 91.7%
  • Disabled

    Votes: 6 8.3%

  • Total voters
    72
Welcome to 2007.

Please, for the love of God, leave it enabled. This was an idiotic argument back when Vista was first released where a bunch of XP fanboys thought it "slowed down performance", whatever the vague fuck that means.

READ THIS. It's an article on Superfetch and all the bullshit lies about it, and more truths.

So yes, a million times yes, leave it on.
 
It doesn't increase boot times, it decreases them. It won't hurt performance in a game, since it's doing nothing at that time. No reason to disable it, and several reasons to keep it on.
 
it should be on, but here is some other windows 7 features related to the memory you could play with.
 
I'm trying to decide whether or not to disable/leave disabled the 'Superfetch' function in my Windows 7/Server 2008 R2 installs.

For my general use PC (internet browsing, etc.), I can see the benifit of having it enabled, but what about my performance machines?

I'm not sure if I want it trying to predict what games I'm going to be playing, and loading a whole load of sh!t into the RAM it'll probably have to dump anyway. Does it actually affect in-map performance, or just game/level loading times? I don't particularly care about initial game boot times and level loads - I just want maximum performance once within a map.

With that in mind, should I turn Superfetch on or off?

Also, just to clarify, Superfetch does reduce O/S boot speed over time, right?
First, Superfetch is disabled out of the box in Server 2008 by default, as are most services. With 7, there's no need to enable since it's already on, and there's no reason to disable it. Microsoft doesn't offer an easy way to disable it because there is no reason too. (I don't consider registry editing 'easy' in sinse that anyone can do it, like changing backgrounds')

All it does is caches data into your unused ram to help your OS and applications load faster. When something else needs the ram, it frees it. There are very few situations to turn it off and even less reason to even consider turning it off. The only reason I could see someone turning it off is if they have an older machine with Vista on it and Superfetch (which is much more agressive in Vista) is locking up the machine.7's version is much less agressive and quite frankly doesn't do as good as a job as Vista's but that's still not a reason to turn it off sense it's still helping.

Why even consider turning it off? Stop reading post by people who don't know what they are talking about. I'm asking you to feel ashamed for even thinking about it.
 
Simply put, if your game needs the RAM, it's getting it and it'll get it near instantly.
 
Simply put, if your game needs the RAM, it's getting it and it'll get it near instantly.
And if more of that RAM is needed, and currently used by SuperFetch, it will be unloaded for the game. Leave it enabled. Leave it alone....heard that phrase before on here?
 
First, Superfetch is disabled out of the box in Server 2008 by default, as are most services.
Yea but Server OS's are an entirely different monster... But I can't see Superfetch hurting a Server OS at all, either. You just won't have as much of a benefit.

I'd assume we're just talking Windows 7 here.

Simply put, if your game needs the RAM, it's getting it and it'll get it near instantly.
Exactly.


Welcome to 2007.

Please, for the love of God, leave it enabled. This was an idiotic argument back when Vista was first released where a bunch of XP fanboys thought it "slowed down performance", whatever the vague fuck that means.

READ THIS. It's an article on Superfetch and all the bullshit lies about it, and more truths.

So yes, a million times yes, leave it on.

QFT...

Superfetch gives priority to the user. So guess what- if Superfetch predicted your behavior wrong, then it stops what it's doing and allocates memory to the user.
So, that right there destroys any argument the nay-sayers have about it. It's so simple it's stupid...
 
Personally I'm curious how SuperFetch interacts with the normal disk cache. It seems to me that in at least some use cases it would make a lot more sense to use all the unused memory as a standard disk cache than the opportunistic SuperFetch one. It seems to do a pretty good job performance-wise in practice, so it seems like it makes sense to leave it on for most people, but I'd really like to know more about how it actually decides what to cache.
 
Personally I'm curious how SuperFetch interacts with the normal disk cache. It seems to me that in at least some use cases it would make a lot more sense to use all the unused memory as a standard disk cache than the opportunistic SuperFetch one. It seems to do a pretty good job performance-wise in practice, so it seems like it makes sense to leave it on for most people, but I'd really like to know more about how it actually decides what to cache.
I'm actually reading through memory management in Windows Internals 5th Edition, that'd be a good place to start. I got it for ~$45 on Amazon and $6 on the iPhone. :)
 
For the record, there is NO Superfetch in 2008 R2. You could enable Superfetch in vanilla Server 2008 but its not even available in R2.
 
Not as far as I can tell, its just the word out on the web right now if you search around. You can add the registry entries but the other related software and services are gone.
 
I'm not disagreeing that it's gone by my thoughts were WHY. Maybe they found some kind of problem with it... I mean, why else ditch something that's disabled by default?
 
I'm not disagreeing that it's gone by my thoughts were WHY. Maybe they found some kind of problem with it... I mean, why else ditch something that's disabled by default?
I use the reasoning that if Microsoft doesn't give you a neat little gui to toggle a setting, that setting is probably better left alone for 99.9% of users.

FYI for those 2 of you who voted to disable it, you won't get flamed if you say why, I'm honestly curious as to what benefit there is to having it off.
 
I'm not disagreeing that it's gone by my thoughts were WHY. Maybe they found some kind of problem with it... I mean, why else ditch something that's disabled by default?

My guess is that it doesn't do any good in a typical server workload. Generally you've got long-lived processes that don't change (for a normal server) or lots of users using the same applications all day (for a terminal server). Neither of these use cases seems to benefit from predictive caching - either applications are running and already in memory or they're used recently enough by a user on the machine that they're already in the standard file cache. Since there's no benefit and it stands to waste some of the cache space, I can see why they would opt to disable it and give that RAM back to the system.
 
My guess is that it doesn't do any good in a typical server workload. Generally you've got long-lived processes that don't change (for a normal server) or lots of users using the same applications all day (for a terminal server). Neither of these use cases seems to benefit from predictive caching - either applications are running and already in memory or they're used recently enough by a user on the machine that they're already in the standard file cache. Since there's no benefit and it stands to waste some of the cache space, I can see why they would opt to disable it and give that RAM back to the system.
Yea but the thing is- it won't HURT anything having it on. If anything, it'll help you out on a couple of programs.

I'm saying it must've HURT something for them to have taken it out, for whatever reason.
 
And I'm saying that if it doesn't help, it can only hurt. I don't know enough about how it allocates memory to speculate much further, but if it never has a useful effect, it makes sense to disable it to reduce the bug surface area. It also can potentially HURT things if it makes a poor choice to pre-cache say a large management application that gets run every day at a random time for a short period. That application might be eating up a couple hundred megs of cache space that could be more beneficial if it were used for active file cache.
 
FYI for those 2 of you who voted to disable it, you won't get flamed if you say why, I'm honestly curious as to what benefit there is to having it off.

I would also love to hear their reasoning behind disabling it (on the client version, I'm assuming).
 
That application might be eating up a couple hundred megs of cache space that could be more beneficial if it were used for active file cache.

But you're forgetting that if RAM needs to be allocated to an active process, it gets allocated. Superfetch knows users get priority.

So again, I'm wondering why they'd disable it. It cannot hurt, it can only help.
 
I voted "disable it" so that you can go try it yourself & see what happens. Observable, quantifiable data shouldn't be the subject of debate and democracy. Try it yourself, put together some numbers & post it online somewhere.
 
Well I run it disabled currently. I have an older G. Skill SSD drive with no cache built in. As of now with the SSD and Superfetch off I haven't noticed a difference. I had it enabled and figured it would be ok to test out for awhile. So far it looks like the placebo effect. Highly doubt either way is gonna hurt with a SSD drive.

With a Mechanical drive, I can see keeping this enabled. Be aware under windows 7 you are not just disabling Superfetch, you are disabling Superfetch, ReadyBoot, and ReadyBoost which all run under superfetch.

After awhile I'll probably turn it back on and see if it gets snappier, but hasn't happened yet!
 
Well I run it disabled currently. I have an older G. Skill SSD drive with no cache built in. As of now with the SSD and Superfetch off I haven't noticed a difference. I had it enabled and figured it would be ok to test out for awhile. So far it looks like the placebo effect. Highly doubt either way is gonna hurt with a SSD drive.

With a Mechanical drive, I can see keeping this enabled. Be aware under windows 7 you are not just disabling Superfetch, you are disabling Superfetch, ReadyBoot, and ReadyBoost which all run under superfetch.

After awhile I'll probably turn it back on and see if it gets snappier, but hasn't happened yet!

Now that I hadn't thought of.

With slow-ass HDD's, Superfetch makes a lot of sense, but with SSD's I'd be curious as to whether or not it makes any difference since SSD's are already so fast to begin with.
 
But you're forgetting that if RAM needs to be allocated to an active process, it gets allocated. Superfetch knows users get priority.

So again, I'm wondering why they'd disable it. It cannot hurt, it can only help.

Sometimes though. If it's an application server, then maybe, depends on the remote app, but lets say it's an email server with DNS and Active Directory and SQL - pretend it's a small business that would not justify buying more than one server - Superfetching would hurt this server because all of the services require a great deal of power to run. There's just no point giving one priority via Superfetch, and you'll almost always run out of RAM anyways running just one of these services.

My 2003 Exchange server constantly complain about maximizing RAM capacity. It's running on 32-bit Small Business Server 2003 with a single core 3.0ghz Xeon and 4gb RAM and has 54 email users.

Imagine the server deciding to dump Exchange's superfetch in favor of SQL because someone accessed the database through a web application. I can only imagine how badly Exchange will crash as a result.

Most server-side software has their own priority adjusting capabilities anyways.

but for a desktop computer running Vista and 7 - and even those who run 2008 (R1) as a desktop OS - definitely keep Superfetch enabled. It's a huge performance boost once your OS learns your computer using habits.
 
But you're forgetting that if RAM needs to be allocated to an active process, it gets allocated. Superfetch knows users get priority.

So again, I'm wondering why they'd disable it. It cannot hurt, it can only help.

I'm not talking about active processes, I'm talking about file cache. SuperFetch is opportunistic and obviously conflicts with file cache; both of them are competing for unused memory, and both cache files on disk. My suggestion is that for server workloads, this might be a counter-productive use as I would imagine that most of the time it's not possible to predict what data is going to be used, and applications are already active and in memory. So you're better off just caching recently used files instead.

I have no idea if this is actually the case or not, it just strikes me as a possible reason for disabling it by default (though not excluding it entirely...).
 
But you're forgetting that if RAM needs to be allocated to an active process, it gets allocated. Superfetch knows users get priority.

So again, I'm wondering why they'd disable it. It cannot hurt, it can only help.

Your reasoning is flawed, "Superfetch knows users get priority" well, typically users don't log in and "use" a server, most servers only have specific tasks, there is nothing to predict, because the server knows what it needs to do.

Lets not forget that Superfetch will always use some system rescources in order for it to function, and some server apps, for example, Exchange, will consume all available RAM regardless of whether it needs that RAM or not, therefore there is no RAM available for superfetch, so why have it enabled? it's just going to consume rescources that can be used else where.

On my servers I run a small set of applications:
Hyper-V
DNS
DHCP
Exchange
Active Directory
WSUS
IIS

You have to realise that these services are running ALL THE TIME and the server is only rebooted after updates, maybe once a fortnight at the most, therefore there is absolutely no benifit for superfetch to be enabled, it would only consume rescources that could be used elsewhere.
 
Your reasoning is flawed, "Superfetch knows users get priority" well, typically users don't log in and "use" a server, most servers only have specific tasks, there is nothing to predict, because the server knows what it needs to do.

Lets not forget that Superfetch will always use some system rescources in order for it to function, and some server apps, for example, Exchange, will consume all available RAM regardless of whether it needs that RAM or not, therefore there is no RAM available for superfetch, so why have it enabled? it's just going to consume rescources that can be used else where.

On my servers I run a small set of applications:
Hyper-V
DNS
DHCP
Exchange
Active Directory
WSUS
IIS

You have to realise that these services are running ALL THE TIME and the server is only rebooted after updates, maybe once a fortnight at the most, therefore there is absolutely no benifit for superfetch to be enabled, it would only consume rescources that could be used elsewhere.
While I don't see a reason to have Superfetch enabled on a Server because it's not like you're constantly switching apps, why are you even arguing this; it's disabled by default on server. On a home OS it's a different situation, you're changing apps all the time.

And by the way, if you want to disable services to save system resources (Black Viper :rolleyes:) ), Superfetch would be the last because I don't think it uses any, or almost no idle resources, like say indexing or others would. Wouldn't you do those first if you were so inclined to cripple/reverse engineer your OS?
 
makes any difference since SSD's are already so fast to begin with.

The difference it makes is still there, just on a smaller scale. SSDs are no doubt faster than your average day HDDs, but still slower than RAM speeds.
 
Sometimes though. If it's an application server, then maybe, depends on the remote app, but lets say it's an email server with DNS and Active Directory and SQL - pretend it's a small business that would not justify buying more than one server - Superfetching would hurt this server because all of the services require a great deal of power to run. There's just no point giving one priority via Superfetch, and you'll almost always run out of RAM anyways running just one of these services.
The above is only true if your resources are sucked up under normal circumstances.
If at any time you have free, unused RAM, Superfetch provides a benefit.



Your reasoning is flawed, "Superfetch knows users get priority" well, typically users don't log in and "use" a server, most servers only have specific tasks, there is nothing to predict, because the server knows what it needs to do.
The processes run under accounts, do they not?
Outside of the system account, all my custom stuff runs under the Administrator account, if a user is running an app it runs under the user's account, etc, etc, etc. My reasoning is just fine.

Lets not forget that Superfetch will always use some system rescources in order for it to function, and some server apps, for example, Exchange, will consume all available RAM regardless of whether it needs that RAM or not, therefore there is no RAM available for superfetch, so why have it enabled?
I call BS to both points.
1) Nobody has ever definitively proven Superfetch uses enough resources to even bat an eye at
2) Exchange doesn't "consume all available RAM regardless of whether it needs that RAM or not". It's currently using 5GB/8GB on my Exchange box :rolleyes:

You have to realise that these services are running ALL THE TIME and the server is only rebooted after updates, maybe once a fortnight at the most, therefore there is absolutely no benifit for superfetch to be enabled, it would only consume rescources that could be used elsewhere.
Your whole argument is based on the assumption that Superfetch uses an ungodly amount of resources to run, which makes it bad, and that's not true.
Again- having Superfetch on won't HURT anything. Granted- it won't offer huge benefits like on a desktop machine, but it can't HURT, it can only HELP.
 
I'm not disagreeing that it's gone by my thoughts were WHY. Maybe they found some kind of problem with it... I mean, why else ditch something that's disabled by default?

Superfetch is for foreground apps.
Servers are designed to...well...."serve"..this means services and processes, not foreground apps. Superfetch is as useless as a nice set of tits on a nun for this situation.
Tis only logical.

As as the above post you attempted at debating points out, services such as Exchange DO indeed need to consume available RAM. The less "overhead" a server has in dedicating resources to things it does not need..(lets say...oh..superfetch)..the more resources are available for real server stuff...like Exchange, or databases, or networking services.
 
I think SuperFetch being disabled on servers is simply because server admins need as pure of a configuration as possible, unlike the average consumer who may not necessarily know what Windows is capable of, leaving Microsoft to make calculated assumptions on what sort of configuration they'd want based on what their needs are.
 
Superfetch is for foreground apps.
Servers are designed to...well...."serve"..this means services and processes, not foreground apps. Superfetch is as useless as a nice set of tits on a nun for this situation.
Tis only logical.
I won't disagree. But again, it won't HURT anything so....

As as the above post you attempted at debating points out, services such as Exchange DO indeed need to consume available RAM.
It uses a ton, sure. Not ALL unused RAM as was claimed.

The less "overhead" a server has in dedicating resources to things it does not need..(lets say...oh..superfetch)..the more resources are available for real server stuff...like Exchange, or databases, or networking services.
Wouldn't disagree, but then again, the thing is: nobody has proven Superfetch has a noticeable hit on performance.
 
Back
Top