我试图了解更改/proc/sys/kernel/perf_event_mlock_kb
的确切结果。
性能man page表示
非特权用户可以锁(2)的最大页面数。默认值为516(kB)。
每个cpu环形缓冲区的控制大小不再计入mlock限制。 默认值为512 + 1页
让我感到困惑的是,这两个来源都使用两种不同的单位-页数和内存Kb。同时,名称的后缀_kb
表示文件定义了Kb的数量。
我的理解是正确的,该措辞暗示该数字应按页面大小而定,如果我在具有两个vCPU的计算机上将文件设置为8046,则perf最多可以为该事件占用16Mb的内存缓冲区?
答案 0 :(得分:3)
我认为内核文档缺少一个单元。
应为512 kiB + 1页= 516 kiB,匹配文件名和性能手册页。如果实际的文件名具有不同的单位,则仍不会命名为_kb
。
cat /proc/sys/kernel/perf_event_mlock_kb
显示516
,因此几乎可以确认它在kiB中。
数字应根据页面大小而定
是的,在x86上,数字应该被4整除,以使大小可以被4k页面大小整除。
如果不是,则内核大概四舍五入,IDK取整。