Documentation/translations/zh_CN/admin-guide/mm/damon/lru_sort.rst
Source file repositories/reference/linux-study-clean/Documentation/translations/zh_CN/admin-guide/mm/damon/lru_sort.rst
File Facts
- System
- Linux kernel
- Corpus path
Documentation/translations/zh_CN/admin-guide/mm/damon/lru_sort.rst- Extension
.rst- Size
- 8751 bytes
- Lines
- 264
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: documentation
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
.. SPDX-License-Identifier: GPL-2.0
.. include:: ../../../disclaimer-zh_CN.rst
:Original: Documentation/admin-guide/mm/damon/lru_sort.rst
:翻译:
臧雷刚 Leigang Zang <zangleigang@hisilicon.com>
:校译:
==================
基于DAMON的LRU排序
==================
基于DAMON的LRU排序是一个静态的内核模块,旨在用于以主动的、轻量级的数据访问模型
为基础的页面优先级处理的LRU链表上,以使得LRU上的数据访问模型更为可信。
哪里需要主动的LRU排序
=====================
在一个大型系统中,以页为粒度的访问检测会有比较显著的开销,LRU通常不会主动去排序,
而是对部分特殊事件进行部分的、响应式的排序,例如:特殊的用户请求,系统调用或者
内存压力。这导致,在有些场景下,LRU不能够完美的作为一个可信的数据访问模型,比如
在内存压力下对目标内存进行回收。
因为DAMON能够尽可能准确的识别数据访问模型,同时只引起用户指定范围的开销,主动的
执行DAMON_LRU_SORT让LRU变得更为可信是有益的,而且这只需要较少和可控的开销。
这是如何工作的
==============
DAMON_LRU_SORT使用DAMON寻找热页(范围内的页面访问频率高于用户指定的阈值)和冷页
(范围内的页面在超过用户指定的时间无访问),并提高热页和降低冷页在LRU中的优先级。
为了避免在排序过程占用更多的CPU计算资源,可以设置一个CPU占用时间的约束值。在约
束下,分别提升或者降低更多的热页和冷页。系统管理员也可以配置三个内存水位以控制
在何种条件下自动激活或者停止这种机制。
冷热阈值和CPU约束的默认值是比较保守的。这意味着,在默认参数下,模块可以广泛且无
负作用的使用在常见环境中,同时在只消耗一小部分CPU时间的情况下,给有内存压力的系
统提供一定水平的冷热识别。
接口:模块参数
==============
使用此特性,你首先需要确认你的系统中运行的内核在编译时启用了
``CONFIG_DAMON_LRU_SORT=y``.
为了让系统管理员打开或者关闭并且调节指定的系统,DAMON_LRU_SORT设计了模块参数。
这意味着,你可以添加 ``damon_lru_sort.<parameter>=<value>`` 到内核的启动命令行
参数,或者在 ``/sys/modules/damon_lru_sort/parameters/<parameter>`` 写入正确的
值。
下边是每个参数的描述
enabled
-------
打开或者关闭DAMON_LRU_SORT.
你可以通过设置这个参数为 ``Y`` 来打开DAMON_LRU_SORT。设置为 ``N`` 关闭
DAMON_LRU_SORT。注意,在基于水位的激活的情况下,DAMON_LRU_SORT有可能不会真正去
监测或者做LRU排序。对这种情况,参考下方关于水位的描述。
commit_inputs
-------------
让DAMON_LRU_SORT再次读取输入参数,除了 ``enabled`` 。
在DAMON_LRU_SORT运行时,新的输入参数默认不会被应用。一旦这个参数被设置为 ``Y``
Annotation
- Atlas domain: Support Tooling And Documentation / Documentation.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.