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.'"
RAM is wasted when it isn't in use. The fact that the task manager in Windows says your RAM is used 95% tells nothing, and no it won't "result in slow-downs as the systems were forced to increasingly turn to disk-based virtual memory to handle tasks". I'm actually really surprised, and not in a good way, that "chief technology officer" of the company doesn't know this.
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.
If it is filesystem cache, then it's not wasted or "maxed out". If it is application/system memory, then it is indeed a problem.
It takes a man to suffer ignorance and smile
Be yourself no matter what they say
Let's start from the story (which I *did* read) - '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,"'
Right there I'd be suspect whether this is even an issue or not. Given Windows (which I generally regard as inferior) as an OS having lots of functionality, I wouldn't be suprised if it takes up all available RAM prior to utilizing swap. I'm on my 2GB Ubuntu system right now and am running at 18% of 2GB with just Mozilla (with two tabs) and Thunderbird. But there's also my network layer (Network Monitor), KTorrent, and my bluetooth daemon running in the background. All told, System Monitor says i have 31 processes running.
Let's do a like comparison - run the exact number of apps and processes before declaring a memory leak.
Sheesh!
The Kai's Semi-Updated Website Thingy
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..
Computerworld should just close up shop for this worthless piece of journalism, or at least give their author the boot for doing any work with Craig Barth who represents a team of morons. samzenpus should be given a troll rating for getting this to Slashdot.
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.
"Current generation hardware"? Seriously, how many machines in this very small sample set are using i series intel chips? The way windows 7 was marketed, I'd bet that many of these machines were upgraded XP boxes. Top that with the 32 bit memory caps and people's general hesitation to install a 64 bit desktop OS, and I am not surprised at all that many machines are hitting memory saturation. Add to that that the Windows 7 interface leads to leaving more apps open at any given time than the XP interface...
First we had submitters who didn't read the stories they were posting. Then we had editors who didn't read the stories they were approving. Now we have companies who don't read the articles they put out. Seriously, it's called a file cache. That's how it's supposed to work. Nice job, idiots.
You cannot study virtual memory performance without considering how many page faults occur.
It is perfectly reasonable to use RAM as a filesystem cache, which is why Linux has adopted this approach. The effect is that almost all of the physical RAM is always in use. The cost is that pages are more likely to be wrongly swapped out - however, in typical cases, this increased cost is tiny in relation to the huge reduction in the number of disk accesses.
Comment removed based on user account deletion
Which is left on by default.
And that "bad performance" simply meant that user opened app that was not already cached in RAM.
But Slashdot filter was pleased: if bad article about windows submitted, then publish it on front page
That makes sense. It also makes sense that roughly 86% of users would enable a full scan every day.
If you're seeing an actual slowdown in performance, fine, worry about it.
User base increases over time. Even on an intranet server, your company will probably add users when it grows. As your user base increases, you will see slowdowns. If you can catch slowdowns before they happen, you will be more prepared for the DDOS attack that comes when your site gets mentioned in a Slashdot article or when a bunch of new employees go through orientation.
100% CPU usage is a good thing: it means there's a process that's not IO bound.
Or it could mean that you need to optimize the process that uses the most CPU time so that it becomes I/O bound. All other things equal, once all your processes are network bound, you can serve more users.
Yeah. I don't have low mem problems with Windows 7. There's stuff I don't like about Windows 7 but "memory hog" is not on the list.
;).
For work I'm using Windows 7 64 bit on a 4GB notebook PC with tons of windows open e.g. a few Explorer windows open, a few Excel "windows"[1], a few Word windows, one Visio doc, Notepad++, Google Chrome, Firefox, putty, Outlook (a resource hog), Communicator, MSN Messenger windows, a Virtual Box Linux vm machine, Microsoft Security Essentials (it's my work PC so it's supposed to have AV) and it typically says 1700 to 2000MB _available_ (depending on how many firefox tabs, how many word docs and virtual machines etc). But overall no mem problem.
And guess which is using the most RAM? Not Virtual Box, not Word, outlook or Excel. It's Firefox with a 173MB working set and 142MB Private Working Set!
Yes it only has 500MB free memory, but so what? The O/S says there's 1700MB available. And so far I haven't had much slowdowns due to low memory issues.
To me the relevant metric for "low on memory" is "Pages Output/sec" (go launch perfmon.msc and add that counter). If that's a constant zero when you or the O/S switches from app to app, window to window, it means it's not swapping out. If it's not swapping out and not getting "out of memory" messages, it's not low in RAM no matter what some random "expert" thinks. And it's zero for me.
The equivalent in Linux for that is the swap "so" column when you run vmstat 1 (or vmstat 2). Same thing there - stuck at zero = not swapping.
I don't think my usage can be considered "light", as it is, what are those users running that's using up so much memory? Symantec or McAfee antivirus?
FWIW, my laptop is not running any of the "OEM crapware" - I did a clean install of Windows 7 months ago when I got the laptop.
If that "expert CTO" can't even give an example of one memory hogging program (or show where Windows 7 itself is using so much memory that it's a problem), then it's likely he's full of crap.
Lastly, it's true my taskbar looks messy with two rows of task buttons, but I don't see the advantage of closing and reopening documents or programs if I'm not running out of RAM yet. I close them if I really do not need them (e.g. the document is out of date and not used for comparison). Otherwise it's much faster to just click a button to show the desired doc, rather than have to reopen it again from scratch (uses less battery power too - except in the case of MS Word which seems to use CPU even when "idle" - haven't figured that one out yet).
[1] By default Excel actually just has one window which changes to display the relevant document depending on which Excel taskbar button you click, whereas Word actually has separate windows for each doc.
If the RAM is needed for another purpose the blocks can be freed by simply changing a flag and mapping them as quickly as if they had been totally free. This does not slow things down. After a while most of the blocks you need will be in RAM when you need them. Thus caching makes the system faster, not slower.
The above describes Linux. I assume Windows works similarly.
As I understand other comments to this article, Windows runs at the equivalent of 100% swappiness, making the system far more likely to evict a process from RAM than to evict things from disk cache. Writes are slower than reads, especially on a RAID or on a laptop with a low-cost SSD. Or to express it more graphically:
8==D : Swappiness on Linux properly tuned for slow writes
8=========D : Swappiness on a Windows box
Comment removed based on user account deletion
Installed x64 on my 4gb machine and the performance was just ridiculously bad. I am a photographer and do a lot of image editing...couldn't even keep Cap One, Photoshop and iTunes open at the same time...especially if 7 was trying to thumbnail images in a folder (thumbnailing is broken and ridiculously resource intensive despite Microsoft's claims that its more robust in this OS). Noticed that it was swapping to the disk like crazy and ordered another 4gb. Definitely much better now, though I think 12gb would not be totally out of line for x64 with heavy applications. I haven't even TRIED to edit HD video yet...that is not a prospect I am looking forward to.
I pity people running the x86 version of the OS that are maxing out at 4gb. Definitely buy 64 bit (even though its more of a beta than a real OS) if you do anything memory intensive.
The one good thing about all this is that HOPEFULLY...FINALLY...maybe this will push Microsoft to push 64 bit more. They need to abandon 32 bit and force application writers and hardware manufacturers to start making 64 bit native applications. Working in a medical environment BELIEVE me I understand the need for backwards compatability, but the fact is that the resources are just not being put in to 64 bit to make it a really viable platform and even moderate power users are going to start bumping up against the 4gb limit.
Yea, I read that thing saying that the 4gb limit is a product-based limit rather than a technical limit but either way...it appears that x64 is where MS is choosing to support > 4gb so lets get serious about it.
Ok that's retarded.
Using 100% of your RAM can easily make your computer slower. Firstly, if a page is "dirty", it needs to be saved to disk before it can be used for another activity. This causes a write to disk before a read, automatically making the read slower.
While that's true, it doesn't matter because those pages would be in-use no matter how much RAM you have.
The "free" RAM (that is, RAM not being used for applications, that is, RAM pages that won't ever be marked dirty) is all caching-- disk and DLL caching. It'll never get marked dirty, and therefore never need saving to disk before being reused.
The problem is "which page do you overwrite next?" If a program is about to read from a portion of its program memory, or is about to read data sitting in the disk cache, you don't want to delete that page. It is just that the operating system doesn't know which piece of data the program will need next.
That's... somewhat true.
First of all, while the OS doesn't know what piece of data the program will need next, it certainly can (and does) make a guess based on what the program has requested in the past. Most programs allocate most of their memory when first starting up, and the OS is going to be able to predict these bits almost 100% of the time. (Unless it's the first run of that program. But it's not magic.)
Secondly, even if the guesses are bad, even if only one guess in a thousand is correct you're still better-off. Tossing away RAM from a bad guess takes zero time, for all practical purposes. In reality it takes time, but it takes less time than the disk takes to load up the data to fill that page, so in practice it takes no time.
Therefore, the penalty for a wrong guess is zero. The reward for a correct guess is significantly higher than zero. It's a win-win situation.
The result is that having empty RAM is almost always beneficial.
Wrong, for the reasons listed above.
Blindly swapping program memory to disk is not a good idea. It never really was.
True, but Windows doesn't do that and that's not what we're talking about. That would never happen unless RAM was 100% full of application data. Even if that was the situation, it's hardly "blind" swapping, as the same heuristics that allow Windows to predict what an application will load next can help it predict what an application will never touch again.
But to repeat: this isn't the situation we're talking about. We're talking about a computer filling unused RAM with disk and DLL cache. You're talking about a computer whose RAM is 100% full of application memory. Apples to oranges.
On today's computers, a memory leak can effectively stop/bring down the computer. The real function of the page file is to soften this problem. Instead of dying relatively quickly, today's computers will slow to a crawl, and then die. The page file causes this.
Ok... and? What's your point? Are you saying that if we didn't cache to RAM this wouldn't happen?
If you have good, well behaved software, and 4 GB of RAM, you will likely experience better system performance under Windows XP by turning the page file off.
Unless that software wants to memory-map a large file, in which case your performance will go straight to hell. Also, in practice, there's a ton of stuff Windows loads initially that can be (more or less) swapped-out immediately and stay there.
For example, the login screen is likely to only be displayed once, ever. And when it's needed again, there's plenty of time to load it-- why leave it in RAM? (And Windows is smart enough not to.)
The only time I'd consider turning VM off entirely is if you're running MacOS 8. Which had worse than useless virtual memory support. You're not, you're using an OS made in the 21st century, turn on the fucking swap file.
Comment of the year