CPU性能优化-磁盘空间和解析时间

即使考虑了跟踪文件的压缩格式,编码后的数据仍然会占用很大的磁盘空间。通常,每条指令不超过1字节,但是考虑到CPU执行指令的速度,数据仍然非常多。根据负载,CPU编码以100MB/s的速度处理PT跟踪文件的情况是很常见的,解析后的数据可能增加10倍多(约1GB/s)。这使得PT工具并不适用于长时间运行的负载,但是,即使是大负载程序也可以用PT运行一小段时间。在这种情况下,用户可以只在问题发生时绑定一小会运行进程。此外,也可以使用环形缓冲区,在环形缓冲区中新的跟踪数据可以覆盖老的。例如,总是跟踪最后10s的数据。

用户可以通过多种方式进一步限制采集,可以限制只跟踪用户或内核空间的代码。此外,还有一个地址过滤的功能,这样就可以动态的控制跟踪的开启和关闭以限制内存带宽,这使得我们可以只跟踪一个函数,甚至一个循环。

解析PT跟踪文件很耗时。在Intel Core i5-8259U机器上,对于跑7ms的负载程序, 编码的PT跟踪文件大概1MB. 使用perf script解析它大概需要20s。使用命令perf script-F time, ip, sym, symoff, insn 的解析结果大概悍勇1.3GB的磁盘空间。

个人经验,Intel PT工具被认为是性能分析的终极手段,有着较低的运行开销,是非常强大的分析工具。然而,到2020年2月为止,用perf script-F带+srcline或者+srccode参数解析跟踪文件会变得相当慢,在日常使用中不太实用。linux perf 工具的实现有待提高,Intel VTune profile对PT技术的支持还是处于实验阶段。

6.5 本章总结

1 只有当上层的性能问题解决了,才建议使用硬件特性进行底层的调优

2 TMA方法是一种非常强大的技术,可以识别程序CPU微架构低效利用,这是一个稳健并且正式的方法

3 最后分支记录LBR 机制可以在运行程序的同时进行持续的记录最近跳转分支指令的输出,产生的性能损耗最小。

4 基于处理器事件的采样PEBS 是另一个性能剖析增强技术,它通过不使用中断的方式自动多次对特定的缓冲区采样来降低采样的开销,不过,PEBS更广为人知的名字是""精准事件,可以精准定位导致某个性能事件的具体指令。Intel处理器支持该特性,AMD处理器也有类似的特性,基于指令的采样。

5 Intel处理器追踪PT技术是一个可以记录程序执行过程并把报文编码到高压缩率二进制文件的技术,该压缩文件可以基于每条指令的时间戳重建程序的执行流。PT技术覆盖度大,开销小。

相关推荐
写代码超菜的1 小时前
网络(一)
网络
阿乾之铭2 小时前
NIO 和 Netty 在 Spring Boot 中的集成与使用
java·开发语言·网络
周杰伦_Jay2 小时前
详细介绍:Kubernetes(K8s)的技术架构(核心概念、调度和资源管理、安全性、持续集成与持续部署、网络和服务发现)
网络·ci/cd·架构·kubernetes·服务发现·ai编程
酱学编程2 小时前
【计算机网络】NAT应用
网络·计算机网络·智能路由器
laimaxgg3 小时前
Linux关于华为云开放端口号后连接失败问题解决
linux·运维·服务器·网络·tcp/ip·华为云
jerry-894 小时前
centos 安全配置基线
网络
didiplus4 小时前
告别手动编辑:如何用Python快速创建Ansible hosts文件?
网络·python·ansible·hosts
Thomas_YXQ5 小时前
Unity3D 动态骨骼性能优化详解
开发语言·网络·游戏·unity·性能优化·unity3d