我正在使用该perf
工具的 4.1 内核和 4.1 版运行 debian 测试。在这个版本中,他们似乎添加了某种保护,以防止普通用户从该工具收集数据。因此,perf
以普通用户身份运行会出现此错误:
perf stat ls
Error:
You may not have permission to collect stats.
Consider tweaking /proc/sys/kernel/perf_event_paranoid:
-1 - Not paranoid at all
0 - Disallow raw tracepoint access for unpriv
1 - Disallow cpu events for unpriv
2 - Disallow kernel profiling for unpriv
Run Code Online (Sandbox Code Playgroud)
perf_event_paranoid
在我的安装中包含 3 个。不幸的是,即使以 root 身份我也无法更改该文件。如何允许我自己的用户在perf
没有 sudo 权限的情况下使用?
我有一个应用程序,我想对其进行基准测试,它不需要 root 并且我不想以 root 身份运行它来对其进行基准测试。
我阅读了有关perf
工具的信息,并且对在我的 RedHat 中使用很感兴趣。在 Ubuntu 上,调用sudo apt-get install linux-tools-2.6.38-11
.
红帽呢?我都试过:
yum install linux-tools
yum install perf
Run Code Online (Sandbox Code Playgroud)
......但它不起作用。
你知道我可以从哪里得到源代码以便我可以自己编译它吗?目前,YUM 存储库指向的服务器包含我们通常安装的大多数软件包,但可能缺少此软件包。
我可以添加什么存储库来下载它?
我对 yum 的调用正确吗?我从http://joysofprogramming.com/install-perf-fedora-rhel/读到那个电话
非常感谢
ps以下有关我的机器的详细信息
uname -a
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
cat /etc/redhat-release
Linux lndbxdev01 2.6.24.7-108.el5rt #1 SMP PREEMPT RT Mon Mar 23 10:58:10 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这是错误信息
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
myrepository | 951 B …
Run Code Online (Sandbox Code Playgroud) 我正在使用命令记录性能计数器 frm linux perf record
。
我想将结果perf.data
用作其他编程应用程序的输入。你知道我应该如何读取和解析数据perf.data
吗?
我想在我的脚本完整运行期间计算磁盘访问次数。我的 bash 脚本在本地运行另外 2 个可执行文件和远程运行另外 2 个可执行文件。像这样(那些可执行文件本身可以访问其他工具):
#!/bin/bash
./executable1 DATA1 &
./executable2 DATA2 &
ssh remote_host './executable3 DATA3' &
ssh remote_host './executable4 DATA4' &
wait;
Run Code Online (Sandbox Code Playgroud)
现在我正在运行我的 bash 脚本,perf
如下所示:
perf stat -e page-faults,page-faults:u ./myBashScript.sh
Run Code Online (Sandbox Code Playgroud)
但结果总是相同的,无论我是否更改 DATA* 文件、命令、命令数量,......像这样:
128,470 page-faults
127,641 page-faults:u
Run Code Online (Sandbox Code Playgroud)
现在我的问题是“如何计算整个脚本的磁盘访问次数?”
附:
我正在运行perf stat
命令./start-server.sh -f server-config.xml
:
perf stat -e cache-misses ./start-server.sh -f server-config.xml
我想将perf
结果保存到文件中,例如通过附加&>out.txt
到命令,但是如果我将输出写入文件,那么我会同时捕获输出perf
和start-server
输出。有没有办法让我执行此命令,以便仅perf
将输出写入输出文件?