Skip to content

Commit 59ff63a

Browse files
committed
Added more cases
1 parent 832b8f5 commit 59ff63a

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

xml/System/GCMemoryInfo.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,9 +319,11 @@ The memory after `OBJ_D` is not considered part of the `FragmentedBytes` but is
319319
<para>When a process is not running in a container or running in a container without a memory limit:
320320
On Windows, the MemoryLoadBytes is obtained from the <see href="/windows/win32/api/winbase/ns-winbase-memorystatus">MEMORYSTATUS structure</see> in bytes divided by the total physical memory.
321321
On Linux, the MemoryLoadBytes is obtained from reading the MemAvailable field from `/proc/meminfo` divided by the total physical memory.</para>
322-
<para>When a process is running in a container with a memory limit:
322+
<para>When a process is running in a container with a memory limit or when cgroup limits are set:
323323
On Windows, the MemoryLoadBytes is obtained from the Working Set Size field in the <see href="/windows/win32/api/psapi/nf-psapi-getprocessmemoryinfo">PROCESS_MEMORY_COUNTERS structure</see> in bytes divided by the memory limit.
324-
On Linux, the MemoryLoadBytes is obtained from the used physical memory via the CGroup Memory Usage file from `/memory.usage_in_bytes` for CGroups v1 and `/memory.current` for CGroups v2 divided by the memory limit.</para>
324+
On Linux, the MemoryLoadBytes is obtained from the used physical memory via the CGroup Memory Usage file from `/memory.usage_in_bytes` for CGroups v1 and `/memory.current` for CGroups v2 divided by the memory limit. The cgroup limits don't necessarily mean there is a container. You can use cgroup to set limits on a regular process.</para>
325+
<para>On Linux, when there is no cgroup enabled, the used physical memory is read from the `/proc/statm` file, which provides the process resident set size.</para>
326+
<para>On Linux, the virtual memory load is also used if the virtual memory rlimit is set and if the load is larger than the physical memory load.</para>
325327
<para>Data is only brought into physical memory on first touch. If you allocated a big object but haven't actually used it, most of its memory isn't in physical memory. In this case, the allocation won't affect the memory load significantly.</para>
326328
</remarks>
327329
</Docs>

0 commit comments

Comments
 (0)