Databases Reference
In-Depth Information
Memory
In this section you are going to look at server memory, some of the issues associated with memory, the
options you can use, and how they can impact the performance of the server. You'll start with a basic
introduction to operating system memory and then jump into the details of how to configure a server for
different memory configurations.
PhysicalMemory
Physical memory is the RAM you install into the server. You are probably already familiar with the
SIMMs and DIMMs that go into desktop PCs and servers. This is the physical memory or RAM. This
memory is measured in megabytes or gigabytes. Windows Server 2003 Data Center edition with SP1 even
supports up to 2 TB of RAM and future editions of the operating system will increase this as customers
demand ever more powerful systems to solve ever more complex business problems.
PhysicalAddressSpace
The physical address space is the set of addresses that the processor uses to access anything on its bus.
On a 32-bit processor, this is limited to 4 GB of total addresses. On a 32-bit Server with PAE (PAE allows
more than 4 GB of memory to be addressed and is discussed further in the section ''32-bit System Memory
Configuration''), the address bus is actually 36 bits, which allows the processor to address 64 GB of
addresses. On a 64-bit processor, you would think the address bus would be 64 bits, but because there
isn't a need for systems that can address 18 Exabytes (1,048,576 TB) of memory yet (nor the ability to
build a system that large), the manufacturers have limited the address bus to 44 bits, which is enough to
address 2 TB.
VirtualAddressSpace
On a 32-bit system, each process running on the system has a total of 4 GB of virtual address space (VAS),
which is used to store program code and data used by applications. There are two important things to
note about this: it's virtual memory (not physical memory) and it's only space (not actual memory).
The 4 GB of VAS is shared between the kernel and your process, split in the middle giving 2 GB for
user-mode address space and 2 GB for kernel-mode address space. However, if you enable /3GB or
/USERVA , the boundary can be moved from 2 GB anywhere up to 3 GB. You can find more information
on /3GB and /USERVA in the ''32-bit System Memory Configuration'' section later in this chapter.
What this means is that there is no memory in the VAS until you either ask for memory or try to load
something. In both cases, the OS takes your request and links a block of virtual address space with
actual memory. Note that the actual memory isn't guaranteed to always be there as the Virtual Memory
Manager can take the memory away and put it into the page file. This is completely transparent and you
won't be aware of it until the next time you try to access that piece of memory. Then it will be really slow
because you will have to wait for the Virtual Memory Manager (VMM) to go and read the page from the
Page File, put it back into a page of memory, and then map that page back into your VAS.
VirtualMemoryManager
The Virtual Memory Manager (VMM) is the part of the operating system that manages all the physical
memory and shares it between all the processes that need memory on the system. Its job is to provide
each process with the illusion that it has 4 GB of VAS and that it has memory when it needs it while
having to juggle the limited physical memory between all the processes running on the system at the
same time.
Search WWH ::




Custom Search