改变 perf_event_mlock_kb 的后果
The consequences of changing perf_event_mlock_kb
我正在尝试了解更改 /proc/sys/kernel/perf_event_mlock_kb
的确切后果。
perf 的 man page 表示
Maximum number of pages an unprivileged user can mlock(2). The default is 516 (kB).
-
Control size of per-cpu ring buffer not counted agains mlock limit.
The default value is 512 + 1 page
让我感到困惑的是,这两个来源都使用了两个不同的单位——页数和内存 Kb。同时,名称的后缀_kb
暗示该文件定义了Kb的个数。
我的理解是否正确,该措辞暗示该数字应该由页面大小决定,如果我在具有两个 vCPU 的机器上将文件设置为 8046,那么 perf 将能够占用多达 16Mb 的内存事件缓冲区?
我认为内核文档缺少一个单元。
应该是 512 kiB + 1 页 = 516 kiB,匹配文件名和 perf 手册页。如果单位不同,实际的文件名将不会仍然命名为 _kb
。
cat /proc/sys/kernel/perf_event_mlock_kb
在我的系统上显示 516
,所以这几乎可以确认它在 kiB 中。
number should be devisable by the page size
是的,在 x86 上,该数字应能被 4 整除,以使大小能被 4k 页面大小整除。
如果不是,内核可能会向上或向下舍入,IDK which.
我正在尝试了解更改 /proc/sys/kernel/perf_event_mlock_kb
的确切后果。
perf 的 man page 表示
Maximum number of pages an unprivileged user can mlock(2). The default is 516 (kB).
-
Control size of per-cpu ring buffer not counted agains mlock limit. The default value is 512 + 1 page
让我感到困惑的是,这两个来源都使用了两个不同的单位——页数和内存 Kb。同时,名称的后缀_kb
暗示该文件定义了Kb的个数。
我的理解是否正确,该措辞暗示该数字应该由页面大小决定,如果我在具有两个 vCPU 的机器上将文件设置为 8046,那么 perf 将能够占用多达 16Mb 的内存事件缓冲区?
我认为内核文档缺少一个单元。
应该是 512 kiB + 1 页 = 516 kiB,匹配文件名和 perf 手册页。如果单位不同,实际的文件名将不会仍然命名为 _kb
。
cat /proc/sys/kernel/perf_event_mlock_kb
在我的系统上显示 516
,所以这几乎可以确认它在 kiB 中。
number should be devisable by the page size
是的,在 x86 上,该数字应能被 4 整除,以使大小能被 4k 页面大小整除。
如果不是,内核可能会向上或向下舍入,IDK which.