当前位置: 首页 > news >正文

论医院网站的建设wordpress 菜单 无效

论医院网站的建设,wordpress 菜单 无效,上海网页设计多少钱,网站开发视频百度云文章目录 前言 二、安装Perf三、二级命令3.1 perf list3.2 perf record/report3.3 perf stat3.4 perf top 四、使用火焰图进行性能分析4.1 下载火焰图可视化生成器4.2 使用perf采集数据4.3 生成火焰图参考资料 前言 perf是一款Linux性能分析工具,内置在Linux内核的…

文章目录

    • 前言
  • 二、安装Perf
  • 三、二级命令
    • 3.1 perf list
    • 3.2 perf record/report
    • 3.3 perf stat
    • 3.4 perf top
  • 四、使用火焰图进行性能分析
    • 4.1 下载火焰图可视化生成器
    • 4.2 使用perf采集数据
    • 4.3 生成火焰图
    • 参考资料

前言

perf是一款Linux性能分析工具,内置在Linux内核的一个Linux性能分析框架中,利用CPU、性能检测单元(Performance Monitoring Unit,PMU)和软件计数(如软件计数器和跟踪点)等进行性能分析。

主要用途:

  1. 快速定位和解决系统性能问题。它可以收集程序运行时的性能数据,包括CPU、内存、IO等方面的信息,并提供详细的性能分析和报告。
  2. 生成程序的调用图,记录程序中函数之间的调用关系,并提供详细的调用图分析和报告。
  3. 检测程序的内存泄漏问题,收集程序运行时的内存数据,并提供详细的内存泄漏分析和报告。
  4. 提供程序性能优化的建议,分析程序运行时的性能数据,并提供优化的建议和方案。

工作原理:

  1. 首先,perf会使用特殊的指令将硬件性能计数器设置为所需的事件类型。这可以包括CPU周期、指令执行数、缓存命中数等。
  2. perf会定期读取计数器的值,以获得一组采样数据。采样的频率可以由用户配置。
  3. perf将采样数据与相应的事件关联起来,并进行分析。这可以包括计算平均值、最大值、最小值,以及计算事件之间的关联性等。
  4. perf可以将分析结果以各种不同的格式进行输出,如报告、图形化界面等。用户可以根据需要选择适合自己的输出格式。

perf调用原理图如下:
img

二、安装Perf

大多数Linux发行版都包含perf工具。可以使用包管理器来安装perf,例如在Ubuntu上可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install linux-tools-common linux-tools-generic linux-tools-$(uname -r)

perf工具需要操作系统内核支持。确保Linux内核启用了性能事件计数器(PerformanceCounter)子系统。可以通过检查内核配置选项来确认,通常是在内核配置文件(例如/usr/src/linux/.config)中搜索以下选项: CONFIG_PERF_EVENTS=y
如果该选项没有被启用,需要重新编译内核并启用该选项。

三、二级命令

在终端中输入perf命令可以看到所有的二级命令:

1	annotate	解析perf record生成的perf.data文件,显示被注释的代码。
2	archive	根据数据文件记录的build-id,将所有被采样到的elf文件打包。利用此压缩包,可以再任何机器上分析数据文件中记录的采样数据。
3	bench	perf中内置的benchmark,目前包括两套针对调度器和内存管理子系统的benchmark。
4	buildid-cache	管理perf的buildid缓存,每个elf文件都有一个独一无二的buildid。buildid被perf用来关联性能数据与elf文件。
5	buildid-list	列出数据文件中记录的所有buildid。
6	diff	对比两个数据文件的差异。能够给出每个符号(函数)在热点分析上的具体差异。
7	evlist	列出数据文件perf.data中所有性能事件。
8	inject	该工具读取perf record工具记录的事件流,并将其定向到标准输出。在被分析代码中的任何一点,都可以向事件流中注入其它事件。
9	kmem	针对内核内存(slab)子系统进行追踪测量的工具
10	kvm		用来追踪测试运行在KVM虚拟机上的Guest OS。
11  list 列出当前系统支持的所有性能事件。包括硬件性能事件、软件性能事件以及检查点。
12	lock	分析内核中的锁信息,包括锁的争用情况,等待延迟等。
13	mem		内存存取情况
14	record	收集采样信息,并将其记录在数据文件中。随后可通过其它工具对数据文件进行分析。
15	report	读取perf record创建的数据文件,并给出热点分析结果。
16	sched	针对调度器子系统的分析工具。
17	script	执行perl或python写的功能扩展脚本、生成脚本框架、读取数据文件中的数据信息等。
18	stat	执行某个命令,收集特定进程的性能概况,包括CPI、Cache丢失率等。
19	test	perf对当前软硬件平台进行健全性测试,可用此工具测试当前的软硬件平台是否能支持perf的所有功能。
20	timechart	针对测试期间系统行为进行可视化的工具。
21	top		类似于linux的top命令,对系统性能进行实时分析。
22	trace	关于syscall的工具。
23	probe	用于定义动态检查点。

3.1 perf list

列出当前系统支持的所有性能事件。包括硬件性能事件、软件性能事件以及检查点。

  1. Hardware event:由PMU产生的事件,如L1缓存命中。
  2. Software event:由内核产生的事件,如进程切换,发生缺页中断等。
  3. Tracepoints event:由内核静态跟踪点所触发的事件。

tracepoints 不仅是用在 perf 中,它已经是 Linux 内核 tracing 的标准接口了,ftrace,ebpf 等工具都会用到它。这些tracepint的对应的sysfs节点在/sys/kernel/debug/tracing/events目录下。

总结:event 是 perf 工作的基础,主要有两种:有使用硬件的 PMU 里的 event,也有在内核代码中注册的 event

3.2 perf record/report

perf record采集数据,并且把数据写入数据文件中,随后可通过perf report命令对数据进行分析

perf record常用选项列表:

选项描述
-e选择一个事件,可以是硬件事件也可以是软件事件
-a全系统范围的数据采集
-p指定一个进程的ID来采集特定进程的数据
-o指定要写入数据的数据文件
-g使能函数调用图功能
-C只采集某个CPU的数据

perf reprot常用选项列表:

选项描述
-i导入数据文件名称,默认为perf.data
-g生成函数调用关系图
–sort分类统计信息,如PID、COMM、CPU等

3.3 perf stat

perf stat 命令一个通过概括、精简的方式提供被调试程序运行的整体情况和汇总数据的工具。如处理器占用时常,上下文切换次数,缺页异常次数等。选项如下:

选项描述
-a显示所有CPU上的统计信息
-c显示指定CPU上的统计信息
-e指定要显示的事件
-p指定要显示的进程ID
# perf stat lsDesktop  Documents  Downloads  Music  Pictures  Public  Templates  VideosPerformance counter stats for 'ls':1.28 msec task-clock:u               #    0.165 CPUs utilized0      context-switches:u         #    0.000 M/sec0      cpu-migrations:u           #    0.000 K/sec104      page-faults:u              #    0.081 M/sec1,054,302      cycles:u                   #    0.823 GHz1,136,989      instructions:u             #    1.08  insn per cycle228,531      branches:u                 #  178.447 M/sec11,331      branch-misses:u            #    4.96% of all branches0.007754312 seconds time elapsed0.000000000 seconds user0.007717000 seconds sys

3.4 perf top

当你有一个明确的优化目标或对象时,可以使用perf stat命令。但有时候系统性能会无端下降,此时需要一个类似于top的命令,以列出所有值得怀疑的进程,从中快速定位问题和缩小范围。

Samples: 1K of event 'cpu-clock', Event count (approx.): 294500000
Overhead  Shared Object        Symbol32.77%  [kernel]             [k] clear_page_orig11.38%  [kernel]             [k] __softirqentry_text_start3.82%  libelf-0.170.so      [.] gelf_getsym3.48%  [kernel]             [k] kallsyms_expand_symbol.constprop.12.80%  [kernel]             [k] filemap_map_pages2.46%  [kernel]             [k] module_get_kallsym2.38%  perf                 [.] d_demangle_callback
  • Samples: 采样数,perf总共采集了1k个CPU时钟事件;
  • event : 事件类型;
  • Event count (approx.):事件总数量;

行列:

  • Overhead :标识该符号的性能事件在所有采样中的比例,用百分比表示;
  • Shared:Shared,是该函数或指令所在的动态共享对象(Dynamic Shared Object),如内核、进程名、动态链接库名、内核模块名等;
  • Object : Object,是动态共享对象的类型。比如 [.] 表示用户空间的可执行程序、或者动态链接库,而 [k] 则表示内核空间。
  • Symbol: Symbol是符号名,也是函数名。当函数名未知时,用十六进制的地址来表示。

四、使用火焰图进行性能分析

火焰图(FlameGraph)是 svg 格式的矢量图,是先通过 perf 等工具分析得到结果,并将该结果生成的具有不同层次且支持互动的图片,看起来就像是火焰,这也是它的名字的由来。表现形式如下所示:
在这里插入图片描述

4.1 下载火焰图可视化生成器

git clone https://github.com/brendangregg/FlameGraph.git

4.2 使用perf采集数据

sudo perf record -F 99 -p 2512 -g -- sleep 30
  • record:表示采集系统事件,没有采用 -e 执行采集事件,则默认采集 cycles(即 CPU clock 周期)。
  • -F 99:指定采样频率为 99Hz(每秒99次),如果 99次都返回同一个函数名, 那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。
  • -p 2512:指定进程号,对某一个进程分析。
  • -g:表示记录调用栈。
  • -- sleep 30:表示持续 30 秒
    除了附加到正在执行的进程之外,还可以启动一个进程
sudo perf record -g -F 99  ls
  • ls:为需要执行的程序

4.3 生成火焰图

# 统计每个调用栈出现的百分比,然后从高到低排列。
sudo perf report -n --stdio
# 生成折叠后的调用栈
sudo perf script -i perf.data > perf.unfold
# 生成火焰图
./stackcollapse-perf.pl perf.unfold > perf.folded
# 最后生成 svg 图
./flamegraph.pl perf.folded > perf.svg

生成的perf.svg 文件可以直接使用浏览器打开。

此外还有红蓝分叉火焰图,可以分析性能回退问题,感兴趣的读者可以进一步了解。

参考资料

  1. 系统级性能分析工具perf的介绍与使用
  2. 从小白到精通:揭秘perf工具的全部功能与操作技巧
  3. perf性能分析–stat命令
  4. 使用火焰图(FlameGraph)分析程序性能
  5. 如何使用perf top探究性能
http://www.yayakq.cn/news/831600/

相关文章:

  • 做淘客网站用什么程序wordpress 百度 tag
  • 企业网站建设选择兴田德润厦门网站建设68
  • 招聘信息网站怎么做aliyun ftp wordpress
  • 开通公司网站怎么开通seo刷排名软件
  • 西安房地产网站建设sap.net怎么做网站
  • 网站标题空格制作网站制作
  • 手机网站违规禁止访问怎么办中科 网站会员注册系统建设
  • 土巴兔网站开发方案郴州全网推广公
  • 浙江省网站集约化建设通知wordpress php版本号
  • 儿童学做彩泥的网站深圳福田建设局网站首页
  • 保定网站电话西安网页设计培训机构哪个好
  • 如何提高网站吸引力肇庆网站制作企业
  • 网站建设面试试题微分销系统是什么
  • 常州市建设局网站如何改变网站首页栏目
  • 织梦网站如何做301跳转浚县网站建设
  • 湘西北京网站建设华为公司网站建设案例分析
  • 男女做那个网站动态图片江门国际网
  • 网站县区分站点建设乐山做美食推荐的网站
  • 运营服务商官方网站企业微信小程序登录入口
  • 织梦网站搬家工具温州移动互联网开发
  • 织梦做的网站 首页有空白山东济南市网站建设
  • 网站推广方案途径传媒网页设计
  • 网站建设合同技术开发合同网站审核备案
  • 专题网站建站陕西建设网成绩查询
  • 大连手机自适应网站建设网站如何建设数据库
  • 网站永久镜像怎么做扬中网站推广导流
  • 如何做网站网页费用陕西省建设执业注册中心网站
  • 网站营销最大的特点焦作建网站
  • 网站怎么做支付宝支付接口济南seo网络优化公司
  • 4s店网站建设计划企业服务云