Disproportionate paging

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Windows 95 Professional
A Publication of The Cobb Group

Published December 1996

System Monitor graphically displays dozens of different aspects of your computer's performance. However, this enormous variety of data can sometimes be overwhelming—you'll soon discover there are far more charts to choose from than you can make sense of at once. And, of course, you'll find some charts to be more useful than others.

In this article, we'll discuss some System Monitor counters you'll find helpful in diagnosing problems that your users are likely to encounter. However, while these quick-fix suggestions can be effective in a pinch, you'll get a lot more from System Monitor if you use it regularly to survey activity when your system is running smoothly. If you know how your system usually behaves, you'll be able to easily recognize the telltale signs when something goes wron

When your system needs a page of data that's not in physical memory, the processor issues exception code 0Eh (a page fault), which tells the virtual memory manager (VMM) to page in the required data from disk to RAM. If not enough RAM is available, the VMM will make room by paging out data from physical memory to disk.

As you know, this memory paging is an everyday operation that enables Windows to run more applications than a system has physical memory to handle. However, a system sometimes can't cope efficiently with the demands on its virtual memory and will consequently spend much of its time doing nothing but paging data in and out of RAM.

When a system executes a disproportionate number of paging operations, performance slows to a crawl. Other symptoms are high or even total processor activity and disk thrashing, which involves constant reading from and writing to the hard disk. Some key System Monitor charts you can use to diagnose this condition are shown in Figure A.


Figure A: : These charts show the unmistakable signs of excessive paging.

These counters are especially effective when the machine you're diagnosing is in a remote location and you can't listen to the disk chatter. In our rather extreme example, which we recorded over a few minutes, the processor is in constant use and there's a vast amount of paging going on. Disk reads are averaging about 250 KB per second, and disk writes are also at a high level. As you'd expect, page faults are high, too. The obvious consequence of this overworked processor is shown in the final chart—there's no free memory. And you can probably imagine the noise our test PC's hard disk was making!

The solution to this problem is simple—tell the user not to keep so many applications open at once, or install more RAM if your budget allows. Considering how far the price of RAM has fallen in the last few years, the second option is more attractive than ever. The single most cost-effective performance improvement you can make to any Windows 95 machine with 8 MB of RAM, regardless of its processor speed, is to boost its memory to 16 MB. We've recently been paying as little as $50 for such upgrades. Install more than 16 MB if you can afford it, but remember that as your system's amount of RAM grows, you'll see decreasingly dramatic improvements per additional megabyte.

On This Page

Too much locked memory
Excessive processor usage
Memory leaks

Too much locked memory

A system's performance can slow down significantly if too high a proportion of its memory is locked. When an application locks one or more pages of memory, it's basically telling Windows 95 not to page that memory out to disk. Memory-locking can provide fast program response, as long as applications aren't too greedy with non-paging memory. If programs sequester too much RAM, the obvious symptom is that system performance will suffer from an inadequate memory pool.

To verify this problem, you need to find out if locked memory constitutes an unusually high proportion of allocated memory. You can trace the problem by telling System Monitor to display its Memory Manager: Allocated memory and Memory Manager: Locked memory counters, as shown in Figure B.


Figure B: : An unusually high proportion of this computer's allocated memory is locked, which poses a threat to system performance.

Although the scales of the two charts are different, you'll quickly notice that about half of our test system's 48.8 MB of allocated memory is locked.

When you encounter this situation, the problem isn't necessarily that selfish applications are hogging your memory. You may just not have enough installed RAM to adequately support the programs you want to run. However, it's still worth checking out the troubled application hypothesis. To track down the problem program, try closing all but one of the applications that were running when you discovered the high proportion of locked memory. (Of course, you'll also need to keep System Monitor open.) Repeat this process with each application. If possible, launch each program several times so that you see multiple instances of it on the taskbar.

Use the applications as you normally would, and note whether one or more of them consumes a disproportionately high amount of locked memory. If so, you may want to invest in a thriftier application to do the same job, or you may contact the application's vendor to ask whether there's an updated release of the product. The manufacturer also might have a solution to the problem.

Excessive processor usage

Occasionally, sustained high levels of processor usage (80 percent by Microsoft's standards) are simply an indication that your CPU isn't up to the jobs you're giving it. Before you come to this conclusion, however, it's worth checking System Monitor's statistics when the PC isn't in heavy use. We've come across situations in which a rogue process causes System Monitor to report 100 percent CPU usage when the computer was apparently idle. If you find this to be the case, try closing down one application at a time until CPU usage drops significantly. (You may need to do this more than once, in a different order each time, if you suspect you have more than one problem application.) When you've isolated the program responsible for the anomaly, experiment with other programs while the suspect program is both open and closed.

You may find that the application you're investigating isn't actually using the CPU cycles System Monitor is reporting. Our research hasn't yet shown whether this is because of an aberration in System Monitor or in the application under scrutiny. We have found that one of our test machines consistently reports that processor usage instantly climbs to 100 percent and stays there, as shown in Figure C, whenever we open Control Panel's Display applet.


Figure C: : This system is virtually idle, except for Control Panel's Display applet, but System Monitor reports 100 percent processor usage.

However, we haven't observed any changes in the system's responsiveness, so we're at least sure that the reported usage information is incorrect. We think this strange effect has something to do with the test machine's graphics card or the software driving it.

If you discover an application that's hogging processor cycles when it's not doing anything useful, you'll probably want to replace it with a similar product that's less greedy, or at least ask the vendor if there's a patch or upgrade available.

Memory leaks

Windows 95 offers great improvements over Windows 3.1x in system resource management. When you close a program, Windows 95 automatically frees all memory allocated to that application's threads, even if the application itself has lost track of them. (Windows 3.1x's inability to perform this housekeeping task causes a lot of memory leaks and makes it worthwhile to restart a Windows 3.1x system at least once a day.)

Unfortunately, even Windows 95 can't release memory from lost threads until the application that owns the threads closes down. The operating system has no way of knowing whether the threads' memory is still in use until the application closes.

Of course, well-written programs usually don't let your valuable memory leak away. But applications that misbehave in this fashion aren't as uncommon as you'd hope. If you think you have such a program, you should invoke System Monitor's Kernel: Processor Usage counter. Seeing exactly how many threads are in use can be difficult, so you'll probably want to choose the View Menu's Numeric Charts option or click the chart to make sure the threads data appears on the status bar.


In this article, we've identified some performance problems you may encounter and discussed how you can use System Monitor to diagnose them. Keep in mind that although the information System Monitor gives you is technically precise, you'll develop a better feel for interpreting that information as you monitor your system over time. Only you can say how much processor activity is acceptable before you determine that one of your systems is overworked.

The article entitled "Diagnosing Performance Problems with System Monitor" was originally published in Windows 95 Professional, December 1996. Copyright © 1996, The Cobb Group, 9420 Bunson Parkway, Louisville, KY 40220. All rights reserved. For subscription information, call the Cobb Group at 1-800-223-8720."

We at Microsoft Corporation hope that the information in this work is valuable to you. Your use of the information contained in this work, however, is at your sole risk. All information in this work is provided "as is," without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement , and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by Microsoft Corporation. Microsoft Corporation shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.