Commit charge
Encyclopedia
In computing, commit charge is a term used in Microsoft Windows
operating system
s to describe the total amount of pageable virtual address space
for which no backing store is assigned other than the pagefile
. On systems with a pagefile, it may be thought of as the maximum potential pagefile usage. On systems with no pagefile, it is still counted, but all such virtual address space must remain in physical memory (RAM) at all times.
utility for Windows XP and Server 2003, in its Performance tab, shows three counters related to commit charge:
The program Process Explorer
reports the same set of values, labeling the Total as Current, and additionally providing percentages of Peak and Current towards the Limit value.
The commit charge increases when any program is opened and used, and goes down when a program is closed. It will also change when already-running programs allocate or free private virtual memory; for example, with the VirtualAlloc and VirtualFree APIs.
In the Task Manager utility under Windows XP
and Windows Server 2003
, the graphical displays labeled "PF usage" and "Page File Usage History," despite their labels, reflect not the pagefile contents but the total (or current) commit charge. The height of the graph area corresponds to the commit limit. These do not show how much has actually been written to the pagefile, but only the maximum potential pagefile usage: The amount of pagefile that would be used if all current contents of RAM had to be removed. In Windows 2000
and Windows NT 4.0
, these same displays are labeled "Mem usage" but again actually show the commit charge and commit limit. Similar displays in the Task Manager of Windows Vista
and later have been changed to reflect usage of physical memory.
In Task Manager's "Processes" display, each process's contribution to the "total commit charge" is shown in the "VM size" column in Windows XP and Server 2003. The same value is labeled "Commit size" in Windows Vista
and later. The total commit charge will always be larger than the sum of these values, as the total includes system-wide allocations such as the paged pool.
In the same display, the "Mem Usage" column in Windows XP and Server 2003, or the "Working Set (Memory)" column in Windows Vista and later, shows each process's current working set
. This is a count of physical memory (RAM) rather than virtual address space. It represents the subset of the process's virtual address space that is valid, meaning that it can be referenced without incurring a page fault
.
The commit charge for each process does not include other major contributions to the process's virtual address space, such as mapped files
. For this reason, the process's working set
(the portion of its address space that can be referenced without incurring a page fault) may be larger than its contribution to total commit charge, and the total commit charge is not inclusive of the total memory (physical or virtual) actually in use.
The commit limit may be increased by either creating additional pagefiles or, if pagefile expansion is enabled, by expanding an existing one. The operating system will expand the pagefile automatically, if possible, when the total commit charge approaches the limit. In such an event a popup window will be displayed stating that "The system is running low on virtual memory
."
If the system ever runs completely out of commit charge (that is, if the total reaches the limit), a popup window will be displayed stating that "The system is out of virtual memory," and it may become extremely sluggish or even nonresponsive. Closing programs (if the user is still able to do so at this point) decreases the total commit charge and may thereby free up the system.
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s to describe the total amount of pageable virtual address space
Virtual address space
Virtual address space is a memory mapping mechanism available in modern operating systems such as OpenVMS, UNIX, Linux, and Windows NT...
for which no backing store is assigned other than the pagefile
Paging
In computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called...
. On systems with a pagefile, it may be thought of as the maximum potential pagefile usage. On systems with no pagefile, it is still counted, but all such virtual address space must remain in physical memory (RAM) at all times.
Overview
The Windows Task ManagerWindows Task Manager
Windows Task Manager is a task manager application included with the Microsoft Windows NT family of operating systems that provides detailed information about computer performance and running applications, processes and CPU usage, commit charge and memory information, network activity and...
utility for Windows XP and Server 2003, in its Performance tab, shows three counters related to commit charge:
- Total is the amount of pagefile-backed virtual address space in use, i.e., the current commit charge. This is composed of main memory (RAM) and disk (pagefiles). The corresponding performance counter is called "Committed Bytes".
- Limit is the maximum possible value for Total; it is the sum of the current pagefile size plus the physical memory available for pageable contents (this excludes RAM that is assigned to non-pageable areas). The corresponding performance counter is called "Commit Limit".
- Peak is the highest amount that the total commit charge has reached since the operating system was last started.
The program Process Explorer
Process Explorer
Process Explorer is a freeware computer program for Microsoft Windows created by Sysinternals, which has been acquired by Microsoft Corporation....
reports the same set of values, labeling the Total as Current, and additionally providing percentages of Peak and Current towards the Limit value.
The commit charge increases when any program is opened and used, and goes down when a program is closed. It will also change when already-running programs allocate or free private virtual memory; for example, with the VirtualAlloc and VirtualFree APIs.
In the Task Manager utility under Windows XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...
and Windows Server 2003
Windows Server 2003
Windows Server 2003 is a server operating system produced by Microsoft, introduced on 24 April 2003. An updated version, Windows Server 2003 R2, was released to manufacturing on 6 December 2005...
, the graphical displays labeled "PF usage" and "Page File Usage History," despite their labels, reflect not the pagefile contents but the total (or current) commit charge. The height of the graph area corresponds to the commit limit. These do not show how much has actually been written to the pagefile, but only the maximum potential pagefile usage: The amount of pagefile that would be used if all current contents of RAM had to be removed. In Windows 2000
Windows 2000
Windows 2000 is a line of operating systems produced by Microsoft for use on personal computers, business desktops, laptops, and servers. Windows 2000 was released to manufacturing on 15 December 1999 and launched to retail on 17 February 2000. It is the successor to Windows NT 4.0, and is the...
and Windows NT 4.0
Windows NT 4.0
Windows NT 4.0 is a preemptive, graphical and business-oriented operating system designed to work with either uniprocessor or symmetric multi-processor computers. It was the next release of Microsoft's Windows NT line of operating systems and was released to manufacturing on 31 July 1996...
, these same displays are labeled "Mem usage" but again actually show the commit charge and commit limit. Similar displays in the Task Manager of Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
and later have been changed to reflect usage of physical memory.
In Task Manager's "Processes" display, each process's contribution to the "total commit charge" is shown in the "VM size" column in Windows XP and Server 2003. The same value is labeled "Commit size" in Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
and later. The total commit charge will always be larger than the sum of these values, as the total includes system-wide allocations such as the paged pool.
In the same display, the "Mem Usage" column in Windows XP and Server 2003, or the "Working Set (Memory)" column in Windows Vista and later, shows each process's current working set
Working set
Peter Denning defines “the working set of information W of a process at time t to be the collection of information referenced by the process during the process time interval ”. Typically the units of information in question are considered to be memory pages...
. This is a count of physical memory (RAM) rather than virtual address space. It represents the subset of the process's virtual address space that is valid, meaning that it can be referenced without incurring a page fault
Page fault
A page fault is a trap to the software raised by the hardware when a program accesses a page that is mapped in the virtual address space, but not loaded in physical memory. In the typical case the operating system tries to handle the page fault by making the required page accessible at a location...
.
The commit charge for each process does not include other major contributions to the process's virtual address space, such as mapped files
Memory-mapped file
A memory-mapped file is a segment of virtual memory which has been assigned a direct byte-for-byte correlation with some portion of a file or file-like resource. This resource is typically a file that is physically present on-disk, but can also be a device, shared memory object, or other resource...
. For this reason, the process's working set
Working set
Peter Denning defines “the working set of information W of a process at time t to be the collection of information referenced by the process during the process time interval ”. Typically the units of information in question are considered to be memory pages...
(the portion of its address space that can be referenced without incurring a page fault) may be larger than its contribution to total commit charge, and the total commit charge is not inclusive of the total memory (physical or virtual) actually in use.
The commit limit may be increased by either creating additional pagefiles or, if pagefile expansion is enabled, by expanding an existing one. The operating system will expand the pagefile automatically, if possible, when the total commit charge approaches the limit. In such an event a popup window will be displayed stating that "The system is running low on virtual memory
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...
."
If the system ever runs completely out of commit charge (that is, if the total reaches the limit), a popup window will be displayed stating that "The system is out of virtual memory," and it may become extremely sluggish or even nonresponsive. Closing programs (if the user is still able to do so at this point) decreases the total commit charge and may thereby free up the system.