jjzjj

linux - perf kvm 无法打开 [],没有符号继续

我正在尝试使用perfkvm监控客户操作系统。我已经使用perfkvm记录选项记录了性能,并使用perfkvm报告生成了报告。为了记录和报告,我按照说明使用了guest操作系统的kallsyms和模块here.问题是,当我使用perfkvmreport生成报告时,很多“共享对象”是未知的,因为perfkvmreport找不到符号。下面是我运行报告时的终端输出。root@computer1:/#perfkvm--guest--guestmodules=modulesreport-iperf.data--force>wasteFailedtoopen[ext4],continuingwit

linux - 如何将 perf.data 缩小到时间子间隔

我使用linuxperf(perf_events)生成带有时间戳的perf.data文件。如何生成子时间间隔[i-start,i-end]内所有事件的报告?我可以将perf.data缩小到一个perf_subinterv.data文件,其中只有[i-start,i-end]中的事件吗?我需要执行此操作以每5分钟左右分析一次性能不佳的短时间间隔(2秒-6秒)。 最佳答案 大多数perf工具,包括perfreport,都支持按时间过滤:--time::Onlyanalyzesampleswithingiventimewindow:,.T

linux - perf get time elasped with field separator 选项

我有一个程序可以解析linux命令perf的输出。它需要使用选项-x,(字段分隔符选项。我想提取elapsedtime(不是task-time或cpu-clock)使用perf。但是,当我使用-x选项时,耗时不存在于输出中,我找不到相应的perf事件。这里是示例输出perfstatls============Performancecounterstatsfor'ls':0.934889task-clock(msec)#0.740CPUsutilized6context-switches#0.006M/sec0cpu-migrations#0.000K/sec261page-faults

linux - perf中的硬件事件和硬件缓存事件有什么区别?

当我输入perflist命令时,我发现有两种事件:Hardwareevent和HardwarecacheEvent。两者有什么区别?cache-misses和LLC-misses有什么区别?缓存未命中是否包括LLC未命中?当我测试程序时,perf工具会降低总体性能吗? 最佳答案 根据perf_event_open系统调用的manpage(由perf用户级实用程序内部使用):硬件事件:这表示内核提供的“通用”硬件事件之一硬件缓存事件:这表示硬件缓存事件。此外,我想知道这是否与[Intel®64andIA-32Architectures

linux - perf lock profile 用户空间是否互斥?

总结:perflock是否配置pthread_mutex?详细信息:perf工具有一个选项perflock。手册页说:Youcananalyzevariouslockbehavioursandstatisticswiththisperflockcommand.'perflockrecord'recordslockeventsbetweenstartandend.Andthiscommandproducesthefile"perf.data"whichcontainstracingresultsoflockevents.'perflocktrace'showsrawlockevents.

linux - perf_event_open 溢出信号

我想计算(或多或少)一段代码的确切指令数量。此外,我希望在通过特定数量的指令后收到信号。为此,我使用了由perf_event_open.我正在使用联机帮助页建议的第二种方式来实现溢出信号:SignaloverflowEventscanbesettodeliverasignalwhenathresholdiscrossed.Thesignalhandlerissetupusingthepoll(2),select(2),epoll(2)andfcntl(2),systemcalls.[...]TheotherwayisbyuseofthePERF_EVENT_IOC_REFRESHioc

c - 从 perf 获取用户空间堆栈信息

我目前正在尝试追踪我正在测试的PostgreSQL构建中的一些幻象I/O。它是一个多进程服务器,将磁盘I/O关联回特定的后端和查询并不简单。我认为Linux的perf工具将是这方面的理想选择,但我正在努力捕获blockI/O性能计数器指标并将它们与用户空间事件相关联。记录blockI/O请求和完成很容易,例如:sudoperfrecord-g-T-upostgres-e'block:block_rq_*'并且记录了用户空间pid,但是没有捕获内核或用户空间堆栈,也没有对用户空间进程的堆(比如查询文本)等位进行快照的能力。所以当你有pid时,您不知道该过程当时在做什么。只是perfscr

c - 使用 perf 分析 sleep 时间

我一直在寻找一种方法来找出我的程序花费时间的地方。我读了perftutorial并尝试按照那里的描述描述sleep时间。我写了最简单的程序来分析:#includeintmain(){sleep(10);return0;}然后我用perf执行它:$sudoperfrecord-esched:sched_stat_sleep-esched:sched_switch-esched:sched_process_exit-g-o~/perf.data.raw./a.out[perfrecord:Wokenup1timestowritedata][perfrecord:Capturedandwro

linux - 在 Kcachegrind 中打开 perf.data

我在某处读到可以将perf.data(来自linuxperfrecord分析工具的输出)转换为kcachegrind可以解析/绘制的格式,但是我没有找到能够执行此转换的应用程序,kcachegrind也没有打开perf.data。这可能吗:使用kcachegrind查看perf输出?我可以使用哪个工具? 最佳答案 将perf数据转换为callgrind格式的方法有两种,目前尚不清楚哪种更成熟。可以在https://github.com/ostash/perfgrind找到具有更多当前提交的perfgrind。然而,据称它缺乏调用图支

android - com.google.android.gms.internal.firebase-perf.zzw 上的 NoClassDefFoundError

从FirebaseCrashlytics收到的崩溃报告数量。我认为这与firebase-perf有关。FatalException:java.lang.NoClassDefFoundError:com.google.android.gms.internal.firebase-perf.zzwatcom.google.firebase.perf.metrics.Trace.start(UnknownSource:44)atcom.google.android.gms.internal.firebase-perf.zze.onActivityStarted(UnknownSource:48