Jetson Stats - Memory Tap

hello, i wanted to know what does the cached and buffers represent in the jetson stats

Hi @noir201

In Linux, cached memory and buffers are two types of memory management mechanisms used to improve system performance.

  1. Buffers:
  • Buffering is a way to optimize I/O operations by storing data temporarily.
  • Buffers in Linux are used to cache data before writing it to disk.
  • Buffers primarily hold metadata about file system objects (like directories and file headers) and are used to speed up disk operations.
  1. Cached Memory:
  • Cached memory holds data that was recently read from or written to disk.
  • Cached memory is used to speed up access to recently used files and applications.
  • Cached memory can be quickly released if needed by applications, as it’s considered low-priority memory.

jtop read from /proc/meminfo

  • Buffers: Buffers
  • Cached: Cached + SReclaimable

jtop, show the status of these mechanisms. More details on this page

1 Like

I will add that cache and buffer memory is not something actually “held” by a program. One normally thinks of memory as something a program is using and thus it isn’t available to another program, but cache and buffer is released upon need.

Some types of memory are faster than others. RAM is of course faster than a disk, and if you’ve put a layer of buffer or cache on top of this, then the first time content is read, this sets it up for a faster read from RAM instead of from the disk so long as you know that content is there and it has not changed. So why not use RAM that has no other use? If the RAM is needed, then it is released from that duty and can go to something like a program that actually locks the memory. Cache and buffer is a “good thing™” for performance, but this is also the reason why computers often take slightly different times to do the same thing…the first time doesn’t have cache or buffer, the second time does…unless something else needed that memory and it was release. On average cache/buffer speeds things up at the cost of an increased standard deviation of time to do the same thing.

2 Likes

Thank you so much @Raffaello and @linuxdev . This is really helpful.
As per i know that in Jetson AGX we have buffer/cache for the GPU and CPU as well. Does this read from any of those or these are independent from the ones available in the CPU/GPU.?

The buffers and caches for the CPU and GPU are not entirely independent, they are part of a coherent system designed to optimize data flow and access. The design ensures that both the CPU and GPU can efficiently share and manage data, which is particularly important for applications involving complex data processing and machine learning.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.