DAMON: Data Access MONitor¶
DAMON is a Linux kernel subsystem that provides a framework for data access monitoring and the monitoring results based system operations. The core monitoring mechanisms of DAMON make it
accurate (the monitoring output is useful enough for DRAM level memory management; It might not appropriate for CPU Cache levels, though),
light-weight (the monitoring overhead is low enough to be applied online), and
scalable (the upper-bound of the overhead is in constant range regardless of the size of target workloads).
Using this framework, therefore, the kernel can operate system in an access-aware fashion. Because the features are also exposed to the user space, users who have special information about their workloads can write personalized applications for better understanding and optimizations of their workloads and systems.
For easier development of such systems, DAMON provides a feature called DAMOS (DAMon-based Operation Schemes) in addition to the monitoring. Using the feature, DAMON users in both kernel and user spaces can do access-aware system operations with no code but simple configurations.
To utilize and control DAMON from the user-space, please refer to the administration guide.
If you prefer academic papers for reading and citations, please use the papers from HPDC’22 and Middleware19 Industry . Note that those cover DAMON implementations in Linux v5.16 and v5.15, respectively.