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

网站备案照推56论坛

网站备案照,推56论坛,谷歌sem和seo区别,河北邯郸永利ktv视频linux perf工具使用指导 perf 是 Linux 内核自带的性能分析工具,主要用于分析系统性能瓶颈和程序的性能问题。通过合理使用 perf 工具,可以有效地分析和优化系统性能。 安装 perf 在大多数 Linux 发行版中,perf 工具通常随内核源代码包一起…

linux perf工具使用指导

perf 是 Linux 内核自带的性能分析工具,主要用于分析系统性能瓶颈和程序的性能问题。通过合理使用 perf 工具,可以有效地分析和优化系统性能。

安装 perf

在大多数 Linux 发行版中,perf 工具通常随内核源代码包一起提供。可以通过以下命令安装:

Ubuntu/Debian:

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

CentOS/RHEL:

sudo yum install perf

基本用法

perf帮助文档:

]# perf --help用法: perf [--version] [--help] [OPTIONS] COMMAND [ARGS]最常用的 perf 命令有:annotate        读取 perf.data(由 perf record 创建)并显示带注释的代码archive         创建包含在 perf.data 文件中找到的带有 build-id 的目标文件的归档文件bench           基准测试套件的一般框架buildid-cache   管理 build-id 缓存buildid-list    列出 perf.data 文件中的 build-idc2c             共享数据 C2C/HITM 分析器config          获取和设置配置文件中的变量data            数据文件相关处理diff            读取 perf.data 文件并显示差异分析evlist          列出 perf.data 文件中的事件名称ftrace          内核 ftrace 功能的简单封装inject          过滤器,用于在事件流中添加附加信息kallsyms        在正在运行的内核中搜索符号kmem            追踪/测量内核内存属性的工具kvm             追踪/测量 KVM 客户操作系统的工具list            列出所有符号事件类型lock            分析锁事件mem             内存访问分析record          运行一个命令并将其性能数据记录到 perf.data 文件中report          读取 perf.data(由 perf record 创建)并显示分析报告sched           追踪/测量调度器属性(延迟)的工具script          读取 perf.data(由 perf record 创建)并显示跟踪输出stat            运行一个命令并收集性能计数器统计数据test            运行完整性测试timechart       可视化工作负载期间系统总体行为的工具top             系统性能分析工具version         显示 perf 二进制文件的版本probe           定义新的动态跟踪点trace           类似 strace 的工具参见 'perf help COMMAND' 以获取有关特定命令的更多信息。

perf 提供了多种子命令,以下是一些常用的命令:

  1. 查看 CPU 性能计数器:
perf stat <command>

该命令会运行指定的命令并显示其 CPU 性能统计信息。

  1. 记录性能数据:
perf record -a

该命令会在系统上收集性能事件,-a 选项表示全局记录(包括所有 CPU)。该命令会在当前路径下生成perf.data

  1. 分析性能数据:
perf report

该命令会显示 perf record 收集到的数据的分析报告。读取当前路径下的perf.data文件。

  1. 跟踪特定进程:
perf trace -p <pid>

该命令会实时跟踪指定进程的系统调用。

实际应用场景

  1. 识别性能瓶颈:

使用 perf stat 监控程序的性能,以识别潜在的瓶颈,如 CPU 使用率、缓存命中率等。

  1. 函数级别性能分析:

使用 perf recordperf report,分析函数执行的耗时,帮助定位慢函数。

  1. 系统调用跟踪:

使用 perf trace 跟踪特定进程的系统调用,以分析 I/O 性能和系统调用的开销。

示例

  1. 统计命令执行的性能:
]# perf stat ls
anaconda-ks.cfg			 keys				  notation
ca.crt				 kubeconfig			  perf.data.old
cirros-0.5.2-x86_64-disk.img	 kubeconfig.kubemark		  perf-tests.tar.gz
cosign				 kubectl-ko			  pki
create_project_harbor.sh	 kubesphere			  pull-image-ceph.sh
download-etcd.sh		 kubesphere1-conf		  push-image-ceph.sh
go				 kubesphere2-1-conf		  registry2.7.tar
go1.22.4.linux-amd64.tar.gz	 kubesphere-argoproj.tar	  rook-ceph
harbor				 kuboard-spray-resource.tar	  sockperf-3.8.tar.gz
helm				 minio				  test-del.tar
ip_add.txt			 MrDoc				  trivy
iperf3-3.1.7-3.el7_9.x86_64.rpm  myproject			  trivy_0.53.0_Linux-64bit.rpm
iperf3-tools.sh			 netperf-2.7.0.tar.gz		  trivy-db.tar.gz
k8s1.23.15-kubesphere3.4.1	 nginx-ingress-controller.tag.gzPerformance counter stats for 'ls':1.92 msec task-clock                #    0.808 CPUs utilized          0      context-switches          #    0.000 K/sec                  1      cpu-migrations            #    0.521 K/sec                  261      page-faults               #    0.136 M/sec                  <not supported>      cycles                                                      <not supported>      instructions                                                <not supported>      branches                                                    <not supported>      branch-misses                                               0.002374917 seconds time elapsed0.000000000 seconds user0.002503000 seconds sys
  1. 记录整个系统的性能数据:
]# perf record -a -g -- sleep 10
[ perf record: Woken up 26 times to write data ]
[ perf record: Captured and wrote 7.078 MB perf.data (59077 samples) ]
  1. 分析记录的数据:
[root@harbor ~]# perf reportSamples: 59K of event 'cpu-clock', Event count (approx.): 14769250000                                                       Children      Self  Command          Shared Object               Symbol                                                   
+   96.81%     0.00%  swapper          [kernel.kallsyms]           [k] start_cpu
+   96.81%     0.01%  swapper          [kernel.kallsyms]           [k] cpu_startup_entry
+   96.65%     0.01%  swapper          [kernel.kallsyms]           [k] arch_cpu_idle
+   96.64%     0.01%  swapper          [kernel.kallsyms]           [k] default_idle
+   96.25%    96.25%  swapper          [kernel.kallsyms]           [k] native_safe_halt
+   69.10%     0.00%  swapper          [kernel.kallsyms]           [k] start_secondary
+   27.71%     0.00%  swapper          [kernel.kallsyms]           [k] x86_64_start_kernel
+   27.71%     0.00%  swapper          [kernel.kallsyms]           [k] x86_64_start_reservations
+   27.71%     0.00%  swapper          [kernel.kallsyms]           [k] start_kernel
+   27.71%     0.00%  swapper          [kernel.kallsyms]           [k] rest_init0.39%     0.00%  swapper          [kernel.kallsyms]           [k] irq_exit0.39%     0.00%  swapper          [kernel.kallsyms]           [k] do_softirq0.39%     0.00%  swapper          [kernel.kallsyms]           [k] call_softirq0.38%     0.07%  swapper          [kernel.kallsyms]           [k] __do_softirq0.32%     0.00%  swapper          [kernel.kallsyms]           [k] apic_timer_interrupt0.32%     0.00%  swapper          [kernel.kallsyms]           [k] smp_apic_timer_interrupt0.32%     0.00%  containerd-shim  containerd-shim-runc-v2     [.] 0x000000000046b6c10.28%     0.00%  runc             [kernel.kallsyms]           [k] async_page_fault0.28%     0.00%  runc             [kernel.kallsyms]           [k] do_async_page_fault0.28%     0.00%  runc             [kernel.kallsyms]           [k] trace_do_page_fault0.28%     0.03%  runc             [kernel.kallsyms]           [k] __do_page_fault0.28%     0.00%  runc             runc                        [.] runtime.goexit.abi00.26%     0.00%  runc             runc                        [.] runtime.main0.25%     0.01%  runc             [kernel.kallsyms]           [k] handle_mm_fault0.23%     0.00%  runc             [kernel.kallsyms]           [k] native_flush_tlb_others0.22%     0.00%  containerd-shim  containerd-shim-runc-v2     [.] 0x00000000004698ca0.22%     0.21%  runc             [kernel.kallsyms]           [k] smp_call_function_many0.18%     0.00%  containerd-shim  containerd-shim-runc-v2     [.] 0x000000000087eeeb0.17%     0.00%  containerd-shim  [kernel.kallsyms]           [k] system_call_fastpath0.16%     0.00%  runc             [kernel.kallsyms]           [k] do_wp_page0.16%     0.00%  runc             [kernel.kallsyms]           [k] wp_page_copy.isra.730.16%     0.00%  runc:[2:INIT]    [kernel.kallsyms]           [k] async_page_fault0.16%     0.01%  runc:[2:INIT]    [kernel.kallsyms]           [k] __do_page_fault0.16%     0.00%  runc:[2:INIT]    [kernel.kallsyms]           [k] do_async_page_fault0.16%     0.00%  runc:[2:INIT]    [kernel.kallsyms]           [k] trace_do_page_fault0.15%     0.00%  runc             [kernel.kallsyms]           [k] ptep_clear_flush0.15%     0.00%  runc             [kernel.kallsyms]           [k] flush_tlb_page

其他用法

不同的子命令有更详细的用法,请通过perf COMMAND --help 或者perf help COMMAND查看。

注意事项

  • 使用 perf 时,某些操作可能需要 root 权限,特别是全局记录和跟踪系统调用。
  • 在高负载系统中,perf 可能会对性能产生一定影响,建议在性能测试或故障排查时使用。
http://www.tj-hxxt.cn/news/108396.html

相关文章:

  • 河南做网站多少钱国家免费职业技能培训
  • 建设网站花多少钱搜索关键词排名工具
  • 怎们自己做网站企业培训课程种类
  • 天津专业制作网站重庆seo技术分享
  • 自己做的网站把密码改忘了怎么办电商运营自学全套教程
  • 如何增加网站外链营销伎巧第一季
  • 凡科做网站多少钱站长之家ip地址查询
  • 自己做捕鱼网站能不能挣钱百度seo服务
  • 随便建设网站犯法吗国内新闻最新消息今天简短
  • 国外交友网站怎么做seo快速工具
  • 学校做安全台账是哪个网站赛事资讯赛马资料
  • 黔东南购物网站开发设计互联网运营推广是做什么的
  • 网站开站宁波seo推荐推广平台
  • 营销策划案的模板绍兴seo网站优化
  • 免费网站建设公司代理营销渠道策略
  • flash网站做seo优化好不好武汉网络推广优化
  • 做电影网站视频放在那里广告免费发布信息平台
  • 泉州关键词优化seo研究中心道一老师
  • 动漫网站怎么做的新品上市怎么做宣传推广
  • 怎么修改公司网站内容企业推广是什么职业
  • 网站后台流程企业网站定制开发
  • 宿州网站建设设计公司搜索引擎优化的概念
  • 政府网站源码下载郑州seo顾问阿亮
  • 涂料做哪个网站好优化大师下载安装
  • 菏泽机关建设网站广州网站定制多少钱
  • 公司网站建设需要哪些设备电商培训心得
  • 红色门户网站投放广告的渠道有哪些
  • 网站广告开户
  • 国外公司做中国网站百度推广获客方法
  • 网站内容的建设有趣软文广告经典案例