我试图了解更改 /proc/sys/kernel/perf_event_mlock_kb 的确切后果。

  • perf 的 man page

  • kernel documentation


  • 让我感到困惑的是,两个来源都使用两个不同的单位 - 页数和内存 Kb。同时,名字的后缀_kb暗示文件定义了Kb的数量。

    我的理解是否正确,该措辞意味着该数字应该可以通过页面大小来判断,如果我在具有两个 vCPU 的机器上将文件设置为 8046,那么 perf 将能够为事件缓冲区占用多达 16Mb 的内存?

    最佳答案

    我认为内核文档缺少一个单元。

    它应该是 512 kiB + 1 page = 516 kiB,匹配文件名和 perf 手册页。如果实际文件名具有不同的单位,则它仍不会被命名为 _kb

    我的系统上的 cat /proc/sys/kernel/perf_event_mlock_kb 显示 516 ,因此几乎可以确认它在 kiB 中。



    是的,在 x86 上,数字应该可以被 4 整除,以使大小可以被 4k 页面大小整除。

    如果不是,内核可能会向上或向下舍入,IDK。

    关于linux - 改变 perf_event_mlock_kb 的后果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55437368/

    10-11 10:19