返回 1. 增加
2. 减小
CentOS 系统 `perf` 权限映射错误:终极指南
Linux
2024-03-16 10:52:56
CentOS 系统上 perf
权限映射错误的终极指南
问题
在多核心的 CentOS 系统上运行 perf record
命令时,你可能遭遇这样的错误:
Permission error mapping pages.
Consider increasing /proc/sys/kernel/perf_event_mlock_kb,
or try again with a smaller value of -m/--mmap_pages.
(current value: 4294967295,0)
此错误表明 perf
无法将内核事件缓冲区映射到用户空间,这通常是因为以下原因之一:
/proc/sys/kernel/perf_event_mlock_kb
的值太小。-m/--mmap_pages
的值太大。
解决方法
1. 增加 /proc/sys/kernel/perf_event_mlock_kb
的值
echo 1024 | sudo tee /proc/sys/kernel/perf_event_mlock_kb
2. 减小 -m/--mmap_pages
的值
perf record -F 99 -p <pid> -g -o perf.data --call-graph dwarf -- sleep 120
其他建议
- 确保你有足够的内核空间。
- 检查你的内核是否已禁用
perf
事件。 - 尝试使用不同的
perf
事件。 - 升级到更新的内核版本。
已知问题
在某些版本的 CentOS 上,可能会出现 perf
事件映射权限问题的已知问题。这通常可以通过增加 /proc/sys/kernel/perf_event_mlock_kb
的值来解决。
常见问题解答
1. 为什么会出现此错误?
此错误通常是由 /proc/sys/kernel/perf_event_mlock_kb
的值太小或 -m/--mmap_pages
的值太大引起的。
2. 如何检查 /proc/sys/kernel/perf_event_mlock_kb
的值?
cat /proc/sys/kernel/perf_event_mlock_kb
3. 如何更改 /proc/sys/kernel/perf_event_mlock_kb
的值?
echo 1024 | sudo tee /proc/sys/kernel/perf_event_mlock_kb
4. 如何减小 -m/--mmap_pages
的值?
perf record -F 99 -p <pid> -g -o perf.data --call-graph dwarf -- sleep 120
5. 如果这些步骤不起作用,我该怎么办?
尝试以下操作:
- 确保你有足够的内核空间。
- 检查你的内核是否已禁用
perf
事件。 - 尝试使用不同的
perf
事件。 - 升级到更新的内核版本。