时延性能优化-常用检查方法和度量
通讯链路时延: 汽车安全/融合
端到端时延:第一层:传感器(lidar/radar/camera/GPS/IMU) 第二层:MDeviceControl (传感器抽象–> 应用+平台): AI/第三层:ECU 车控第四层:执行器
需求:按照时延分段统计,node
时延链路:pub –> alloc—>jieshou –> serial –>[equeue-> schedule –> deque]–> deserial –>rece
1、多个节点归一
2、内部消息不外发,
3、消息瘦身
4、模型内部消息计算
检测对象变化 ~~ 早晚高峰; 检测方式 暴雨天气 水花噪声 误检 增加图像特证
5 spinonce
6 cacheline cache miss
工具: top -Hp pid; /pidstat /vmstat 就绪队列长度/iostat/netstat/ss -nltup socket统计信息/sar -n DEV 1/tcpdump
perf record -e cpu-clock -t tid/–call-graph
perf report
sudo perf top -p xxx : 实时展示热点函数
perf / stat record + timechart record report perf record -g -F 99 -p "pid" — sleep 60top 输出动态调用栈(top -H -p xxx)diff 两次record输出的dat文件比较timechart 图表 一直想知道的TopDownprobe -x so –add malloc perf stat -e probe libc:free -e probe libc:malloc -ag -p sched 调度相关lock 锁的竞争bench 内置的性能测试工具https://www.chromium.org/developers/how-tos/trace-event-profiling-tool/
sched sched-switch sched_wake up IPI raw_syscalls
power cpu_frequency power clock_set_rate
系统比较忙 sleep runable running
实验过程:
目的:验证在CPU 高负载情况下对于DDS 时延影响
方式:ftrace 内核态的Event打点信息故障注入邦核线程 试验在CPU6上
如果CPU 的资源不足,体现出来的就是上图中的处于Runnable 状态; sleep 表示的是此时还没有调度到。
那么怎么表示这段时间的时延是有问题的呢??多进程改为单进程多线程方式 线程池化 , 进程调度修改为进程内的线程调度,减少调度开销用户态并发任务管理多级流水线 无锁处理微架构方面:包批量处理 数据预先取 + 相关业务绑核共享一组DCache (使用场景:感知和规控,或者数据的转发;内存池化 所有的内存是排列在一起的,预取命中)+ITLB miss 大页模式 ==> icache dcache 提升性能30%操作系统层级:并发锁优化&CPU隔离或者成为绑核 降低函数调用开销 inline编译器优化 反馈式编译 代码分支
业务层级减少业务之间通讯,合并业务进程内; 单板进程间 共享内存 Topic数据不复制;不同单板 用户态的 ???
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/93392.html