我试图了解更改 /proc/sys/kernel/perf_event_mlock_kb
的确切后果。
让我感到困惑的是,两个来源都使用两个不同的单位 - 页数和内存 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/