Virtual Memory and its
influences on performance
While virtual memory makes
it possible for computers to more easily handle larger and more complex
applications, as with any powerful tool, it comes at a price. The price in
this case is one of performance — a virtual memory operating system has a
lot more to do than an operating system that is not capable of virtual
memory. This means that performance will never be as good with virtual
memory than with the same application that is 100% memory-resident.
However, this is no reason
to throw up one's hands and give up. The benefits of virtual memory are too
great to do that. And, with a bit of effort, good performance is possible.
The thing that must be done is to look at the system resources that are
impacted by heavy use of the virtual memory subsystem.
Worst Case Performance
Scenario
For a moment, take what you have read earlier,
and consider what system resources are used by extremely heavy page fault
and swapping activity:
· RAM
-- It stands to reason that available RAM will be low (otherwise there would
be no need to page fault or swap).
Try this site for recommendations on DDR and SDRAM Memory Upgrades
· Disk
-- While disk space would not be impacted, I/O bandwidth would be.
· CPU
-- The CPU will be expending cycles doing the necessary processing to
support memory management and setting up the necessary I/O operations for
paging and swapping.
The interrelated nature of these loads makes it
easy to see how resource shortages can lead to severe performance problems.
All it takes is:
·
A system with too little RAM
·
Heavy page fault activity
·
A system running near its limit in terms of CPU
or disk I/O
At
this point, the system will be thrashing, with performance rapidly
decreasing.
Best Case Performance
Scenario
At best, system performance will present a
minimal additional load to a well-configured system:
· RAM
-- Sufficient RAM for all working sets with enough left over to handle any
page faults
· Disk
-- Because of the limited page fault activity, disk I/O bandwidth would be
minimally impacted
· CPU
-- The majority of CPU cycles will be dedicated to actually running
applications, instead of memory management
From this, the overall point to keep in mind is
that the performance impact of virtual memory is minimal when it is used as
little as possible. This means that the primary determinant of good virtual
memory subsystem performance is having enough RAM.