Pref安装 -- Linux下的系统性能调优工具

本文描述了作者在遇到Jenkins访问速度极慢的问题时的解决过程,通过重启Docker容器暂时解决了问题,但深刻意识到Performance知识的重要性。文章记录了安装perf工具的过程,包括安装kernel source code和在perf目录下进行编译安装,以此作为Performance学习的起点。

今天不知道什么原因,发现Jenkins访问特别慢,组内很多人都在抱怨,说打build package已经等了一个多小时了,还没有结束。登录Jenkins server输入 free -m , top 等命令,从显示信息看还是一种无从下手的感觉。书到用时方恨少,第一次感觉自己对Performance相关的知识所知甚微,所以用了最古老的办法,重启 Jenkins container。(我们的Jenkins是以docker container的方式启动的),重启后,虽然都一切正常了,,但却深深的为我上了一课,不懂Performance的工程师不是一个合格的工程师。所以立马认真开始研究大胡子叔叔Brendan Gregg的blog(http://www.brendangregg.com/index.html).开始今天的第一个tool的安装。

1. 首先安装kernel soure code(please refer to the link https://www.cnblogs.com/wanpengcoder/p/11768483.html https://wiki.centos.org/zh/HowTos/I_need_the_Kernel_Source

2. 进入安装Kernel source code 目录, 以我本机为例,

/root/rpmbuild/BUILD/kernel-3.10.0-957.el7/linux-3.10.0-957.el7.x86_64/

3. 进入tools/perf

4. 执行make & make install 即可

5. 检查安装:

enjoy good time ~~~~

参考链接:https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/

 

### 3.1 perf 工具简介 `perf` 是 Linux 系统中一个基于事件驱动的性能分析工具,广泛用于实时和历史性能数据的采集与分析。作为 Linux 内核的一部分,其源码位于内核源码树中的 `tools/perf` 目录下。经过长期发展,`perf` 已经成为一个功能强大的性能剖析工具,能够支持多种软硬件事件采样,并可捕获跟踪点(trace points)信息,例如系统用、TCP/IP 事件以及文件系统操作等[^3]。 ### 3.2 perf 的核心命令 #### 实时性能监控 `perf top` 命令类似于 `top`,用于实时显示当前系统的性能统计信息,帮助识别最耗时的函数或进程。该命令主要用于观察整个系统当前的状态,适用于快速定位热点问题[^4]。 ```bash perf top ``` #### 性能计数器统计 `perf stat` 可以运行某个命令并输出详细的性能计数器统计信息,包括 CPU 周期、指令执行数量、分支预测命中率等。例如: ```bash perf stat ls ``` 输出示例: ``` Performance counter stats for 'ls': 0.653782 task-clock # 0.691 CPUs utilized 0 context-switches # 0.000 K/sec 0 CPU-migrations # 0.000 K/sec 247 page-faults # 0.378 M/sec 1,625,426 cycles # 2.486 GHz 1,050,293 stalled-cycles-frontend # 64.62% frontend cycles idle 838,781 stalled-cycles-backend # 51.60% backend cycles idle 1,055,735 instructions # 0.65 insns per cycle # 0.99 stalled cycles per insn 210,587 branches # 322.106 M/sec 10,809 branch-misses # 5.13% of all branches 0.000945883 seconds time elapsed ``` #### 记录与回放性能数据 `perf record` 和 `perf report` 配合使用,可以记录一段时间内的性能数据并在后续进行分析。例如,以下命令将记录 10 秒内的性能数据: ```bash sudo perf record -a -g sleep 10 ``` 随后使用 `perf report` 查看分析结果: ```bash sudo perf report ``` 此方法适用于需要深入分析性能瓶颈的场景,如函数用栈、热点路径等[^2]。 ### 3.3 perf 的势与应用场景 由于 `perf` 是内核级工具,它可以直接访问底层硬件性能计数器,并提供对系统用、中断、锁竞争等多种事件的支持。这使得 `perf` 成为 Linux 上首选的性能剖析工具,尤其适合用于化关键路径、识别资源瓶颈和试并发问题等场景[^3]。 在实际应用中,`perf` 被广泛用于以下几个方面: - **CPU 性能分析**:通过追踪周期、指令执行效率、缓存命中率等指标,评估程序执行效率。 - **内存访问分析**:利用页错误、TLB 失效等事件分析内存访问行为。 - **I/O 与网络性能分析**:结合系统用跟踪,分析磁盘读写、网络请求延迟等问题。 - **锁与并发分析**:通过上下文切换、度延迟等事件评估多线程程序的同步效率。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值