Previous page

Next page

Locate page in Contents

Print this page

Customizing the /proc/meminfo Output in Containers

The /proc/meminfo virtual file allows you to view the information about memory usage (both physical and swap) on the system.You can customize the output of this file inside a particular Container and set it to one of the following modes:

  • Non-virtualized . In this case running the cat /proc/meminfo command inside a Container will display the information about the physical memory on the server (total, used, free, shared, etc.), in kilobytes.
  • Virtualized in pages . Setting the /proc/meminfo output to this mode allows you to specify what amount of total memory (in kilobytes) will be displayed while running the cat /proc/meminfo command inside this or that Container.
  • Virtualized in privvmpages . Setting the /proc/meminfo output to this mode also allows you to arbitrarily specify the amount of total memory (in kilobytes) to be displayed while running the cat /proc/meminfo command inside this or that Container. As distinct from the previous mode, the amount of memory to be shown in this mode is calculated on the basis of the value of the PRIVVMPAGES parameter set in the Container configuration file.

Notes:

1. In Parallels Containers 4.6, the functionality of customizing the /proc/meminfo output is obsolete.

2. Enabling a specific mode for a Container does not influence the real resources allocation to the Container. It is only used to modify the way the /proc/meminfo output is displayed in the Container.

During the Parallels Server Bare Metal installation, the output of the /proc/meminfo virtual file is set to the ' non-virtualized' mode, i.e. running the cat /proc/meminfo command inside any Container will show the information about the memory usage on the Parallels server. You can use the --meminfo option with the pctl set command to switch between different modes:

  • To set the output of /proc/meminfo inside Container 101 to the ' virtualized in pages ' mode, issue the following command:

    # pctl set 101 --meminfo pages:2000 --save

    The amount of memory that will be displayed by running the cat /proc/meminfo command inside Container 101 is defined by the data specified after the --meminfo option:

    • pages tells the pctl set command to enable the ' virtualized in pages ' mode for the /proc/meminfo output and simultaneously denotes the units of measurement to be used for setting the amount of memory (e.g., 4-KB pages for Containers running 32-bit operating systems).
    • 200 denotes the number of pages to be shown in the /proc/meminfo output.

    In our case the /proc/meminfo output inside Container 101 may look like the following:

    # pctl exec 101 cat /proc/meminfo

    MemTotal: 8000 kB

    MemFree: 5140 kB

    LowTotal: 8000 kB

    LowFree: 5140 kB

    Buffers: 0 kB

    Cached: 0 kB

    SwapCached: 0 kB

    HighTotal: 0 kB

    HighFree: 0 kB

    ...

    When working in this mode, keep in mind the following:

    • The specified amount of memory (in our case it is 8000 KB) is always shown in the MemTotal and LowTotal fields of the cat /proc/meminfo output.
    • The values in the MemFree and LowFree fields are calculated automatically by the system.
    • All the other fields in the command output have the values set to 0.
  • To set the output of /proc/meminfo inside Container 101 to the ' virtualized in privvmpages ' mode, execute the following command:

    # pctl set 101 --meminfo privvmpages:3 --save

    The amount of memory that will be displayed by running the cat /proc/meminfo command inside Container 101 is calculated using the following formulas:

    • Privvmpages_Value * 3 * 4KB if Container 101 is running a 32-bit operating system (OS) or an OS for x86-64 processors and
    • Privvmpages_Value * 3 * 16KB if Container 101 is running an OS for IA-64 processors

    where Privvmpages_Value denotes the value of the PRIVVMPAGES parameter set in the Container configuration file and 3 is an arbitrary integer coefficient which you can modify to increase/decrease the amount of memory in the /proc/meminfo output. Assuming that the privvmpages parameter for Container 101 is set to 10000, your output may look as follows:

    # pctl exec 101 cat /proc/meminfo

    MemTotal: 120000 kB

    MemFree: 78248 kB

    LowTotal: 120000 kB

    LowFree: 78248 kB

    Buffers: 0 kB

    Cached: 0 kB

    SwapCached: 0 kB

    HighTotal: 0 kB

    HighFree: 0 kB

    ...

    As can be seen from the example above, the displayed records comply with the same rules as the records in the ' virtualized in pages ' mode.

  • To revert the output of /proc/meminfo to the default mode, execute the following command:

    # pctl set 101 --meminfo none --save

Note: If the value specified after the --meminfo option exceeds the total amount of memory available on the Parallels server, the cat /proc/meminfo command executed inside a Container will display the information about the total physical memory on this server.

The --save flag in the commands above saves all the parameters to the Container configuration file. If you do not want the applied changes to persist, you can omit the --save option and the applied changes will be valid only till the Container shutdown.