/proc/pressure Directory: Explanation & Insights

Kernel CPU and memory pressure

On a Linux system, the /proc/pressure directory contains information about the kernel's memory and CPU pressure in the form of a set of files that contain information about the kernel's internal load management. The files in this directory are generated by the kernel and provide a way for users to see how the kernel is managing its internal memory and CPU usage.

  • /proc/pressure/memory: This file contains information about the kernel's memory pressure and the actions taken by the kernel to alleviate memory pressure. It includes the following fields: Memory pressure is a measure of the demand for memory resources within the kernel. When there is a lot of memory pressure, the kernel may need to free up memory by reclaiming memory from idle processes or by swapping out memory pages to disk. This can have a negative impact on performance, as it takes time for the kernel to reclaim memory and for processes to access swapped-out memory pages.

    • "some": This field indicates the amount of memory that is being reclaimed by the kernel.
    • "full": This field indicates the amount of memory that is being reclaimed by the kernel and is being written to disk (swapped out).
    • "max": This field indicates the maximum amount of memory that has been reclaimed by the kernel since the last time the file was read.
  • /proc/pressure/cpu: This file contains information about the kernel's CPU pressure and the actions taken by the kernel to alleviate CPU pressure. It includes the following fields:

    • "some": This field indicates the amount of CPU time that is being reclaimed by the kernel.
    • "full": This field indicates the amount of CPU time that is being reclaimed by the kernel and is being written to disk (swapped out).
    • "max": This field indicates the maximum amount of CPU time that has been reclaimed by the kernel since the last time the file was read.

To detect performance issues related to memory pressure, you can monitor the /proc/pressure/memory file and look for high values in the "some" and "full" fields. If these values are consistently high, it may indicate that the kernel is under significant memory pressure and is having to work hard to free up memory. This can lead to slower performance and may indicate that you need to add more memory to your system or optimize your workload to reduce the demand for memory resources.

You can also use tools like top or vmstat to monitor the system's memory usage and identify processes that are using a lot of memory. This can help you identify potential issues with memory-hungry processes that may be contributing to the kernel's memory pressure.

The text above is licensed under CC BY-SA 4.0 CC BY SA