Xsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/admin-guide/mm/damon/startmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/zh_TW/admin-guide/mm/damon/startmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/it_IT/admin-guide/mm/damon/startmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ja_JP/admin-guide/mm/damon/startmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ko_KR/admin-guide/mm/damon/startmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/sp_SP/admin-guide/mm/damon/startmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh[/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/admin-guide/mm/damon/start.rsthKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h-Documentation/admin-guide/mm/damon/start.rst h]h)}(h,Documentation/admin-guide/mm/damon/start.rsth]h,Documentation/admin-guide/mm/damon/start.rst}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h翻译h]h翻译}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhKubh)}(h-司延腾 Yanteng Si h]h)}(h,司延腾 Yanteng Si h](h司延腾 Yanteng Si <}(hj hhhNhNubh reference)}(hsiyanteng@loongson.cnh]hsiyanteng@loongson.cn}(hj*hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:siyanteng@loongson.cnuh1j(hj ubh>}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h校译h]h校译}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]uh1hhjPubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhsection)}(hhh](htitle)}(h 入门指南h]h 入门指南}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1j{hjxhhhhhKubh)}(hX本文通过演示DAMON的默认用户空间工具,简要地介绍了如何使用DAMON。请注意,为了简洁 起见,本文档只描述了它的部分功能。更多细节请参考该工具的使用文档。 `doc `_ .h](h本文通过演示DAMON的默认用户空间工具,简要地介绍了如何使用DAMON。请注意,为了简洁 起见,本文档只描述了它的部分功能。更多细节请参考该工具的使用文档。 }(hjhhhNhNubj))}(h=`doc `_h]hdoc}(hjhhhNhNubah}(h]h ]h"]h$]h&]namedocrefuri4https://github.com/damonitor/damo/blob/next/USAGE.mduh1j(hjubhtarget)}(h7 h]h}(h]docah ]h"]docah$]h&]refurijuh1j referencedKhjubh .}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjxhhubjw)}(hhh](j|)}(h 前提条件h]h 前提条件}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j{hjhhhhhKubjw)}(hhh](j|)}(h内核h]h内核}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j{hjhhhhhKubh)}(hm首先,你要确保你当前系统中跑的内核构建时选定了这个功能选项 ``CONFIG_DAMON_*=y``.h](hX首先,你要确保你当前系统中跑的内核构建时选定了这个功能选项 }(hjhhhNhNubhliteral)}(h``CONFIG_DAMON_*=y``h]hCONFIG_DAMON_*=y}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]id3ah ]h"]内核ah$]h&]uh1jvhjhhhhhKubjw)}(hhh](j|)}(h用户空间工具h]h用户空间工具}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j{hj hhhhhKubh)}(h在演示中,我们将使用DAMON的默认用户空间工具,称为DAMON Operator(DAMO)。它可以在 https://github.com/damonitor/damo找到。下面的例子假设DAMO在你的$PATH上。当然,但 这并不是强制性的。h](ho在演示中,我们将使用DAMON的默认用户空间工具,称为DAMON Operator(DAMO)。它可以在 }(hjhhhNhNubj))}(hhttps://github.com/damonitorh]hhttps://github.com/damonitor}(hj$hhhNhNubah}(h]h ]h"]h$]h&]refurij&uh1j(hjubhc/damo找到。下面的例子假设DAMO在你的$PATH上。当然,但 这并不是强制性的。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK!hj hhubh)}(h因为DAMO使用了DAMON的sysfs接口(详情请参考:doc:`usage`),你应该确保 :doc:`sysfs ` 被挂载。h](h=因为DAMO使用了DAMON的sysfs接口(详情请参考:doc:}(hj=hhhNhNubhtitle_reference)}(h`usage`h]husage}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj=ubh),你应该确保 }(hj=hhhNhNubh)}(h!:doc:`sysfs `h]hinline)}(hj[h]hsysfs}(hj_hhhNhNubah}(h]h ](xrefstdstd-doceh"]h$]h&]uh1j]hjYubah}(h]h ]h"]h$]h&]refdoc-translations/zh_CN/admin-guide/mm/damon/start refdomainjjreftypedoc refexplicitrefwarn reftarget/filesystems/sysfsuh1hhhhK%hj=ubh 被挂载。}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK%hj hhubeh}(h]id4ah ]h"]用户空间工具ah$]h&]uh1jvhjhhhhhKubeh}(h]id2ah ]h"] 前提条件ah$]h&]uh1jvhjxhhhhhKubjw)}(hhh](j|)}(h记录数据访问模式h]h记录数据访问模式}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j{hjhhhhhK)ubh)}(hf下面的命令记录了一个程序的内存访问模式,并将监测结果保存到文件中。 ::h]hc下面的命令记录了一个程序的内存访问模式,并将监测结果保存到文件中。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjhhubh literal_block)}(h$ git clone https://github.com/sjp38/masim $ cd masim; make; ./masim ./configs/zigzag.cfg & $ sudo damo record -o damon.data $(pidof masim)h]h$ git clone https://github.com/sjp38/masim $ cd masim; make; ./masim ./configs/zigzag.cfg & $ sudo damo record -o damon.data $(pidof masim)}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK-hjhhubh)}(hX"命令的前两行下载了一个人工内存访问生成器程序并在后台运行。生成器将重复地逐一访问两个 100 MiB大小的内存区域。你可以用你的真实工作负载来代替它。最后一行要求 ``damo`` 将 访问模式记录在 ``damon.data`` 文件中。h](h命令的前两行下载了一个人工内存访问生成器程序并在后台运行。生成器将重复地逐一访问两个 100 MiB大小的内存区域。你可以用你的真实工作负载来代替它。最后一行要求 }(hjhhhNhNubj)}(h``damo``h]hdamo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh 将 访问模式记录在 }(hjhhhNhNubj)}(h``damon.data``h]h damon.data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh 文件中。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK1hjhhubeh}(h]id5ah ]h"]记录数据访问模式ah$]h&]uh1jvhjxhhhhhK)ubjw)}(hhh](j|)}(h将记录的模式可视化h]h将记录的模式可视化}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j{hjhhhhhK7ubh)}(h你可以在heatmap中直观地看到这种模式,显示哪个内存区域(X轴)何时被访问(Y轴)以及访 问的频率(数字)。::h]h你可以在heatmap中直观地看到这种模式,显示哪个内存区域(X轴)何时被访问(Y轴)以及访 问的频率(数字)。:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjhhubj)}(hX9$ sudo damo report heats --heatmap stdout 22222222222222222222222222222222222222211111111111111111111111111111111111111100 44444444444444444444444444444444444444434444444444444444444444444444444444443200 44444444444444444444444444444444444444433444444444444444444444444444444444444200 33333333333333333333333333333333333333344555555555555555555555555555555555555200 33333333333333333333333333333333333344444444444444444444444444444444444444444200 22222222222222222222222222222222222223355555555555555555555555555555555555555200 00000000000000000000000000000000000000288888888888888888888888888888888888888400 00000000000000000000000000000000000000288888888888888888888888888888888888888400 33333333333333333333333333333333333333355555555555555555555555555555555555555200 88888888888888888888888888888888888888600000000000000000000000000000000000000000 88888888888888888888888888888888888888600000000000000000000000000000000000000000 33333333333333333333333333333333333333444444444444444444444444444444444444443200 00000000000000000000000000000000000000288888888888888888888888888888888888888400 [...] # access_frequency: 0 1 2 3 4 5 6 7 8 9 # x-axis: space (139728247021568-139728453431248: 196.848 MiB) # y-axis: time (15256597248362-15326899978162: 1 m 10.303 s) # resolution: 80x40 (2.461 MiB and 1.758 s for each character)h]hX9$ sudo damo report heats --heatmap stdout 22222222222222222222222222222222222222211111111111111111111111111111111111111100 44444444444444444444444444444444444444434444444444444444444444444444444444443200 44444444444444444444444444444444444444433444444444444444444444444444444444444200 33333333333333333333333333333333333333344555555555555555555555555555555555555200 33333333333333333333333333333333333344444444444444444444444444444444444444444200 22222222222222222222222222222222222223355555555555555555555555555555555555555200 00000000000000000000000000000000000000288888888888888888888888888888888888888400 00000000000000000000000000000000000000288888888888888888888888888888888888888400 33333333333333333333333333333333333333355555555555555555555555555555555555555200 88888888888888888888888888888888888888600000000000000000000000000000000000000000 88888888888888888888888888888888888888600000000000000000000000000000000000000000 33333333333333333333333333333333333333444444444444444444444444444444444444443200 00000000000000000000000000000000000000288888888888888888888888888888888888888400 [...] # access_frequency: 0 1 2 3 4 5 6 7 8 9 # x-axis: space (139728247021568-139728453431248: 196.848 MiB) # y-axis: time (15256597248362-15326899978162: 1 m 10.303 s) # resolution: 80x40 (2.461 MiB and 1.758 s for each character)}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhK # target_id 18446632103789443072 # avr: 107.708 MiB 0 0 B | | 10 95.328 MiB |**************************** | 20 95.332 MiB |**************************** | 30 95.340 MiB |**************************** | 40 95.387 MiB |**************************** | 50 95.387 MiB |**************************** | 60 95.398 MiB |**************************** | 70 95.398 MiB |**************************** | 80 95.504 MiB |**************************** | 90 190.703 MiB |********************************************************* | 100 196.875 MiB |***********************************************************|h]hX$ sudo damo report wss --range 0 101 10 # # target_id 18446632103789443072 # avr: 107.708 MiB 0 0 B | | 10 95.328 MiB |**************************** | 20 95.332 MiB |**************************** | 30 95.340 MiB |**************************** | 40 95.387 MiB |**************************** | 50 95.387 MiB |**************************** | 60 95.398 MiB |**************************** | 70 95.398 MiB |**************************** | 80 95.504 MiB |**************************** | 90 190.703 MiB |********************************************************* | 100 196.875 MiB |***********************************************************|}hj<sbah}(h]h ]h"]h$]h&]hhuh1jhhhKRhjhhubh)}(hs在上述命令中使用 ``--sortby`` 选项,可以显示工作集的大小是如何按时间顺序变化的。::h](h在上述命令中使用 }(hjJhhhNhNubj)}(h ``--sortby``h]h--sortby}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubhM 选项,可以显示工作集的大小是如何按时间顺序变化的。:}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKbhjhhubj)}(hX $ sudo damo report wss --range 0 101 10 --sortby time # # target_id 18446632103789443072 # avr: 107.708 MiB 0 3.051 MiB | | 10 190.703 MiB |***********************************************************| 20 95.336 MiB |***************************** | 30 95.328 MiB |***************************** | 40 95.387 MiB |***************************** | 50 95.332 MiB |***************************** | 60 95.320 MiB |***************************** | 70 95.398 MiB |***************************** | 80 95.398 MiB |***************************** | 90 95.340 MiB |***************************** | 100 95.398 MiB |***************************** |h]hX $ sudo damo report wss --range 0 101 10 --sortby time # # target_id 18446632103789443072 # avr: 107.708 MiB 0 3.051 MiB | | 10 190.703 MiB |***********************************************************| 20 95.336 MiB |***************************** | 30 95.328 MiB |***************************** | 40 95.387 MiB |***************************** | 50 95.332 MiB |***************************** | 60 95.320 MiB |***************************** | 70 95.398 MiB |***************************** | 80 95.398 MiB |***************************** | 90 95.340 MiB |***************************** | 100 95.398 MiB |***************************** |}hjjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKdhjhhubeh}(h]id6ah ]h"]将记录的模式可视化ah$]h&]uh1jvhjxhhhhhK7ubjw)}(hhh](j|)}(h'数据访问模式感知的内存管理h]h'数据访问模式感知的内存管理}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j{hjhhhhhKvubh)}(h}以下三个命令使每一个大小>=4K的内存区域在你的工作负载中没有被访问>=60秒,就会被换掉。 ::h]hz以下三个命令使每一个大小>=4K的内存区域在你的工作负载中没有被访问>=60秒,就会被换掉。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhjhhubj)}(h$ echo "#min-size max-size min-acc max-acc min-age max-age action" > test_scheme $ echo "4K max 0 0 60s max pageout" >> test_scheme $ damo schemes -c test_scheme h]h$ echo "#min-size max-size min-acc max-acc min-age max-age action" > test_scheme $ echo "4K max 0 0 60s max pageout" >> test_scheme $ damo schemes -c test_scheme }hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKzhjhhubeh}(h]id7ah ]h"]'数据访问模式感知的内存管理ah$]h&]uh1jvhjxhhhhhKvubeh}(h]id1ah ]h"] 入门指南ah$]h&]uh1jvhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(j{N generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjjjjjjjjjjj}jzjju nametypes}(jjjjjjj}juh}(jjxjjjjjjjj jjjzjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages]transform_messages] transformerN include_log]?Documentation/translations/zh_CN/admin-guide/mm/damon/start.rst(NNNNta decorationNhhub.