草庐IT

perf-stat

全部标签

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

c++ - 使用 stat 检测文件是否存在(慢?)

我正在使用如下代码在继续之前检查文件是否已创建,问题是文件在被stat检测到之前就已经显示在文件浏览器中了……这样做有问题吗这个?//...dosomethingstructstatbuf;while(stat("myfile.txt",&buf))sleep(1);//...dosomethingelse或者是否有更好的方法来检查文件是否存在? 最佳答案 使用inotify,您可以安排内核在文件系统发生更改(例如文件创建)时通知您。这很可能是您的文件浏览器用来快速了解文件的原因。 关于

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 stat 调用

有没有办法让Linuxstat系统调用超时?我使用的是分布式文件系统,理论上我所有的文件系统调用都应该得到及时响应,但实际上并非如此。在一段固定的时间后,我宁愿有一个超时和一个错误代码,也不愿继续挂起。我已经尝试在另一个线程中产生请求,但这与gdb有一些不希望的交互,并且是表达我真正想要的东西的一种非常迂回的方式:超时。 最佳答案 假设您正在使用C,并且您可以安全地设置SIGALARM处理程序,您可以使用与此类似的代码,只是使用不同的库调用:Canstatvfsblockoncertainnetworkdevices?Howtoha

Python:os.stat().st_size 给出的值与 du 不同

我正在创建一个实用程序,它将遍历目录并获取所有目录的子目录和文件的大小并存储该值。但是,尺寸计算不正确。这是我的类,它自动递归遍历所有子目录:classdirectory:'''Classthatautomaticallytraversesdirectoriesandbuildsatreewithsizeinfo'''def__init__(self,path,parent=None):ifpath[-1]!='/':#Addtrailing/self.path=path+'/'else:self.path=pathself.size=4096self.parent=parentsel

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

linux - 在 Linux 上,access() 是否比 stat() 快?

我会假设access()只是stat()的包装器,但我一直在谷歌搜索并找到foundsomeanecdotes关于用“更便宜”的访问调用替换统计调用。假设您只对检查文件是否存在感兴趣,访问速度是否更快?它是否完全因文件系统而异? 最佳答案 理论我对此表示怀疑。在内核的较低层中,access()和stat()调用之间没有太大区别,两者都执行查找操作:它们将文件名映射到dentry缓存和inode中(它是实际的内核结构,inode)。查找是一个缓慢的操作,因为您需要为路径的每个部分执行它,即对于/usr/bin/cat您将需要查找usr