86% of Windows 7 PCs Maxing Out Memory
CWmike writes "Citing data from Devil Mountain Software's community-based Exo.performance.network (XPnet), Craig Barth, the company's chief technology officer, said that new metrics reveal an unsettling trend. On average, 86% of Windows 7 machines in the XPnet pool are regularly consuming 90%-95% of their available RAM, resulting in slow-downs as the systems were forced to increasingly turn to disk-based virtual memory to handle tasks. The 86% mark for Windows 7 is more than twice the average number of Windows XP machines that run at the memory 'saturation' point, and this comes despite more RAM being available on most Windows 7 machines. 'This is alarming,' Barth said of Windows 7 machines' resource consumption. 'For the OS to be pushing the hardware limits this quickly is amazing. Windows 7 is not the lean, mean version of Vista that you may think it is.'"
The new memory models in recent OS's try to utilize all the available RAM (as they should) to speed up things otherwise. It makes a lot of sense to cache things from hard-drive in low-peak usage points, and in such such way that it doesn't interfere with other perfomance. When the things that are most often used are already cached in RAM, their loading works a lot faster. This doesn't include only files, icons or such, but everything the OS could use or do that takes time.
If theres a sudden need for more RAM, the cached data can be "dropped" in no time. It doesn't matter if it averages at 25% or 95%, just that the perfomance overally is better when you utilize all the resources you can to speed up things in general.
Assuming your claims of how Windows 7 is implemented are true, then the claims from the person who actually collected all the empirical evidence must be false:
resulting in slow-downs as the systems were forced to increasingly turn to disk-based virtual memory to handle tasks.
If the memory was freed up dynamically as needed then no processes would ever be forced to resort to disk-based virtual memory. So either you work at Microsoft and are assuring us that the implementation protects against this or you're speculating against someone who has claimed to gathered a large enough to make such accusations.
... the guy who is offering me numbers.
No offense but I'm going to side with the guy who appears to make his living testing these sorts of things
My work here is dung.
I guess Devil Mountain or whoever don't know about SuperFetch. Or need publicity.
And I guess slashdot editors don't know about SuperFetch. Or maybe an article like this gets them more traffic, revenue, etc.
The fucking bullshit that passes for articles these days..
I think the issue here is that the system is turning to swap. Caching stuff that may be referenced again is fine and dandy, but if the system regularly turns to swap just to keep itself afloat, then you have a problem.
The metric to count is the number of page faults, an indicator of the number of times that the OS addresses memory that isn't in RAM.
As others point out, measuring just the fraction of memory consumption is stupid. I have 6GB of RAM ; my processes are using about 1.7GB of that, but the OS is claiming that 3.8GB is consumed. So that's 2.1GB of cached data that I no longer have to wait for from disk. Hooray.
TFA hints that they may be measuring page faults, and does mention that Win7 is hitting the disk for virtual memory more often. But they should make that clearer if it's the case.
Here we see why /. needs a "-1, Wrong" mod.
Ive been running Windows 7 since the BETA release. I have never experienced any issues that result in I/O thrashing against the hard drive as result of all my ram being utilized. I also have numerous friends running Windows 7 none have reported any issues like this, if anything its been praise for the operating system. So I am amazed to see a 86% number being thrown out there yet never seen this problem before.
No offense but I'm going to side with the guy who appears to make his living testing these sorts of things ... the guy who is offering me numbers.
And now lets quote something from the article...
Barth acknowledged that XPnet's data couldn't determine whether the memory usage was by the operating system itself, or an increased number of applications, but said that Devil Mountain would start working on finding which is the dominant factor in increased memory use.
This single sentence makes the article rubbish. They have no clue whats causing the heavy memory usage, its just an assumption that the OS is causing it and they're yelling fire before looking through all the data or completely analyzing the problem.
Definitely the part about HDD caching slowing things down. Even in the DOS age it was well known that hdd caching utilities (I forgot the names, too long ago) improve disk performance tremendously.
/dev/null
Linux does the same things as Windows: it caches as much stuff from disk into main memory as possible. Try running:
cat large_video_file.avi >
You'll see that after running the command, your memory usage jumps up by the size of the video file. Now try running the same command again, it's now an order of a magnitude faster.
On Linux things like this are stored in main memory in the form of caches and buffers. I don't know about Windows, but Linux clears some caches and buffers if applications need real memory. Caches and buffers show up in memory usage reporting tools like 'free', so it's quite normal to see Linux systems using 90% or more RAM, most of which go to caches and buffers. It seems that most people who complain about memory usage don't know how memory is managed on modern operating systems, so they go all apeshit about "OMG HELP linux is using so much memory it sux0rz!!!" and I have to explain again and again how they're not getting it. Same goes to you. Now, Windows is suffering from the same problem.
FYI, here's the memory usage of my Linux server:
total used free shared buffers cached
Mem: 720 702 17 0 55 510
-/+ buffers/cache: 136 583
Swap: 399 0 399
It says 702 MB of used memory. Now look at "-/+ buffers/cache", it says 136 MB. That's the amount of memory *actually* used by applications.
Read TFA. It just claims that Windows 7 consumes all available RAM. That is the "empirical evidence." System slowdown was NOT measured.
Utilizing all available RAM is a pretty well understood technique at this point. All web browsers do this now, as do many other applications. One would expect a well-designed modern OS to do this. Consuming all memory itself is not a sign of poor programming itself, so long as disk caching of things that should be in RAM doesn't occur. This is not something that the people in the article has measured.
I'm going to side with the guy who appears to make his living testing these sorts of things.
Bad science is bad irrespective of the person conducting it. And whatever the original tester said is getting filtered through the viewpoint of the gentleman writing the article. Considering that he says that "Windows 7 is not the lean, mean version of Vista that you may think it is," yet never once compares statistics to Vista (or even mentions it outside of this statement), I'd take the conclusions from these stats with a grain of salt.
The ______ Agenda
You missed the most important emphasis:
Ostensibly means "to all outward appearances." In other words, they're admitting they don't really know the inner workings, the true cause of the delays. They're just supposing it's due to RAM swapping, as opposed to increased networking activity, aero glass, more concurrent programs being run on average, or any other number of other wag'd reasons. Basically, they picked two measurements that are both higher in W7, and just said, "Well, it stands to reason that A causes B." What's that phrase that internet smarty-pantses use all the time about this?
There are two kinds of people: 1) those who start arrays with one and 1) those who start them with zero.
If stuff slows down due to that swap out, then it's still accurate enough for me.
Maybe the O/S could get it right and swap out and swap in Firefox in a way so I won't notice any slow downs. Give me an example of such an O/S please.
So far in my experience, if Windows or Linux swaps out Firefox for whatever reason, if I then switch to Firefox, I have to wait for it to be swapped back in.
Why "page out" and not "page in"?
"Page in" doesn't necessarily mean that I'll have to wait if I switch to different programs- the O/S is bringing stuff from disk to ram - I believe in some cases the O/S pages in stuff as part of running a new program - so it's not such a useful metric for "not enough memory".
But "page out" means something in RAM is going to disk - if I ever want it back in RAM, I'll have to wait.
If stuff in RAM is going to disk needlessly and causing unnecessary waits then the O/S virtual memory algorithm is getting things wrong.