本文档主要介绍了如何在RHEL5U4系统上安装和配置Oprofile,一个用于Linux系统的系统级性能分析工具。Oprofile的特点是非侵入式的,可以在不修改系统源码的情况下进行代码级别性能监控,它利用硬件计数器来追踪运行时性能数据,具有低开销。
首先,安装内核符号信息是使用Oprofile的前提,这通过执行`rpm -i kernel-debuginfo-common-2.6.18-164.el5.x86_64.rpm`和`rpm -i kernel-debuginfo-2.6.18-164.el5.x86_64.rpm`来完成。安装后的内核二进制文件位于`/usr/lib/debug/lib/modules/2.6.18-164.el5/vmlinux`。
Oprofile本身通常已预装在RHEL5U4的发行版中,版本为0.9.6,无需额外安装。用户可以通过查阅`man oprofile`获取详细的使用手册。官方文档和新闻可以从<http://oprofile.sourceforge.net/news/>获取最新更新和相关信息。
在安装和配置过程中,首先要确认观察哪些性能事件,Nehalem CPU支持的事件列表可通过`opcontrol --list-events`命令查看。常见的事件如CPU执行时间(CPU_CLK_UNHALTED)、末级缓存 miss (LLC_MISSES) 和数据TLB miss (DTLB_MISSES) 对于理解和优化程序性能至关重要。
对于目标程序(包括内核驱动),确保它们都有符号信息,应用程序的编译应使用`gcc -g foo.c`添加调试符号。可以通过`cat /proc/kallsyms`查看内核导出的符号。
在实际使用Oprofile时,首先要加载内核模块`opcontrol --init`,但可能不需要对内核取样,这时可以使用`opcontrol --setup --no-vmlinux`。如果需要对内核取样,需要指定`vmlinux`路径,如`opcontrol --setup vmlinux=/usr/lib/debug/lib/modules/2.6.18-164.el5/vmlinux`。
这篇文章详细地指导了在RHEL5U4环境中如何安装、配置并利用Oprofile进行系统性能分析,这对于理解和优化软件性能、定位瓶颈问题非常实用。