Windows Memory Management 37th Edition
Spring 2015 Windows Memory Management 37th Edition
Microsoft provides an resource describing Windows Operating System Memory Management on their Windows Development Desktop technologies site. Each process on 32-bit Microsoft Windows has its own virtual address space that enables addressing up to 4 gigabytes of memory. Each process on 64-bit Windows has a virtual address space of 8 terabytes. All threads of a process can access its virtual address space. However, threads cannot access memory that belongs to another process, which protects a process from being corrupted by another process.
32-bit Windows OS memory architecture
The 32-bit Windows Operating System addressable memory space is shared between active applications and the kernel as shown in Figure B1.1. The kernel address space includes a System Page Table Entry (PTE) area (kernel memory thread stacks), Paged Pool (page tables, kernel objects), System Cache (file cache, registry), and a Non Paged Pool (images, etc).
The default 32-bit Windows Operating System (OS) configuration provides up to 4 GB (2^32) of addressable memory space divided equally between the kernel and the user applications. With 4 GB of physical memory available, 2 GB will be allocated to the kernel and 2 GB to application memory. The kernel mode address space is shared across processes and the application mode access space is allocated for each user process (each process has it’s own space).
Extended user application memory can be enabled by setting the windows Physical Access Extension /PAE switch in the System Basic Input/Output System (BIOS). The BIOS software is built into the computer hardware, and is the first software run by the hardware platform when powered on. The 32-bit Windows OS with /PAE switch in the BIOS provides up to 64 GB (2^36) addressable memory space. The /PAE switch extends the user application mode address space up to 62 GB. Each application is allocated it’s own 1.5 GB of virtual space. Enterprise or Data Center version of Windows Server OS is required for 32-bit extended memory operations.
64-bit Windows OS memory architecture
The default 64-bit Windows Operating System (OS) configuration provides up to 16 TB (2^54) of addressable memory space divided equally between the kernel and the user applications. With 16 TB of physical memory available, 8 TB virtual address (VA) space will be allocated to the kernel and 8 TB VA space to user application memory. The kernel virtual address space is shared across processes. Each 64-bit process has it’s own space while each 32-bit application runs in a virtual 2 GB Windows-on-Windows (WOW).
ArcGIS platform memory recommendations
Each platform configuration must include sufficient physical memory to accommodate all active process executions, including kernel and user application virtual address space. Systems that do not have sufficient memory will experience performance degradation during peak load conditions (processing overhead increases due to operating system swapping lower priority processes between disk and memory). If memory is not sufficient to support concurrent server processing requirements, system will start to experience random process failures (processes dropped from memory during execution).
Warning: Server memory requirements will vary depending on the size and complexity of the user application processes and the size and configuration of the required data resources.
ArcGIS recommended platform physical memory configurations are generated by the Capacity Planning Tool based on the following guidelines.
- Windows Terminal Server memory guidelines are generated based on peak concurrent ArcGIS for Desktop user sessions supported by the selected platform configuration. ArcGIS for Desktop medium complexity workflows provide an average application memory allocation of 475 MB per user session. Memory allocation is adjusted based on assigned workflow complexity (i.e. heavy complexity workflows provide an average application memory allocation of 950 MB per user session.)
- ArcGIS Geodatabase Server memory guidelines are generated based on peak concurrent ArcSDE Geodatabase connections supported by the selected platform configuration. DBMS medium complexity workflow connections provide an average memory allocation of 47 MB per user connection. Memory allocation is adjusted based on assigned workflow complexity.
- Web and ArcGIS for Server memory guidelines are generated based on recommended peak active concurrent service instance (SOC) configurations supported by the selected platform configuration. The general guideline is 3 GB memory per server core. 3 GB memory would support up to 15 concurrent 100 MB active SOC service instances, well above the recommended target configuration of 3-5 active service instances per core for peak system throughput.
- Virtual server host platform memory guidelines are generated based on the total assigned virtual server memory requirements plus additional 1 GB per physical core for hypervisor memory. Minimum host platform recommended memory would be 4 GB per physical core.
CPT platform memory recommendations are reduced by the selected platform rollover setting. If you have a limited amount of platform memory, you can reduce the platform rollover setting to estimate peak concurrent user loads (platform throughput) constrained by the limited memory capacity.
Additional ArcGIS for Server memory considerations
ArcGIS for Server administrators need to ensure adequate GIS Server platform memory is available to handle the maximum number of active service instances deployed during peak system loads. An important discussion on GIS Server machine memory configuration is provided in the Server Software Performance chapter.