首页 > 其他分享 >webrtc应用上线cpu偏高的问题排查

webrtc应用上线cpu偏高的问题排查

时间:2023-12-11 10:46:31浏览次数:32  
标签:编译 webrtc 排查 火焰 版本 release cpu

现象

 如上图, 上线后服务全量使用的cpu统计明显增高, 大概在50%左右. 

排查

  1. 比对上一稳定版本和本次版本代码diff, 无异常
  2. 比对依赖lib版本, 无异常
  3. 使用perf和FlameGraph 生成火焰图比对两个版本差异. 发现几个问题: 有些调用栈不同, 缺少一些中间函数调用栈; 新版本在音频处理过程中消耗cpu明显增大100%.
  4. 感觉看火焰图看不出来什么眉目, 突然想起来可能是配置错了? config没有改变, 编译的debug和release倒是没有关注过. 使用release重新编译了一把, cpu降低了下来.

老版本火焰图:

 新版本火焰图:

 

结果

之前没有考虑过O0和O3 对服务的影响有多大, 现在看来, 编译优化还是对线上服务影响很大的. release比 debug版本cpu使用率高50%左右!

标签:编译,webrtc,排查,火焰,版本,release,cpu
From: https://www.cnblogs.com/micoblog/p/17893836.html

相关文章

  • percpu 读写信号量 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/locking/percpu-rw-semaphore.html"Percpurwsemaphores"是一种新的读写信号量设计,针对读取操作进行了优化。传统的读写信号量存在一个问题,即当多个核心获取读取锁时,包含信号量的缓存行在各个核心的L1缓存之间反复传输,导致性能下降......
  • CPUSETS 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/cpusets.htmlCPUSETS1.Cpusets1.1什么是cpusets?Cpusets提供了一种机制,用于将一组CPU和内存节点分配给一组任务。在本文档中,“内存节点”指的是包含内存的在线节点。Cpusets限制了任务的CPU和内存放置......
  • CPU核算控制器 【ChatGPT】
    原文:https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/cpuacct.htmlCPU核算控制器CPU核算控制器用于使用cgroups对任务进行分组,并核算这些任务组的CPU使用情况。CPU核算控制器支持多层级分组。一个核算组累积其所有子组和直接存在于其组中的任务的CPU使用情况。可......
  • CPU热插拔在内核中的支持 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/cpu_hotplug.htmlCPU热插拔在内核中的支持日期2021年9月作者[email protected],[email protected],[email protected],[email protected]......
  • GB28181视频平台LiteCVR接入音频无声的原因排查
    视频监控系统逐渐向着互联互通和可视化的方向发展。随着互联网技术的发展,视频监控系统可以联网进行数据传输,实现不同监控设备之间的互联互通。同时,可视化技术的应用也使得视频监控数据可以以更加直观的方式呈现,使得人们更加容易理解和应用。GB28181视频平台LiteCVR拓展性强,视频......
  • Linux: CPU C-states
    0.OverviewTherearevariouspowermodesoftheCPUwhicharedeterminedbasedontheircurrentusageandarecollectivelycalled“C-states”or“C-modes.”WithCPUC-states,theCPUcanentertheidlestatustooptimizeenergyconsumption.TheCPUhas......
  • 第4章 带你快速入门WebRTC技术
    4-3屏幕共享项目-用golang搭建静态资源服务这段代码是一个使用Go语言编写的简单的HTTP和HTTPS服务器。下面是对代码中涉及的知识点和语法格式的详细解释packagemainimport( "fmt" "net/http")packagemain:这行代码指定了当前文件所属的包是main,表示这是一个可执行程......
  • 【故障公告】数据库服务器今年第七次 CPU 100% 故障
    自11月9日第六次数据库服务器CPU100%故障之后,今天下午又出现数据库服务器CPU100%故障,是今年的第七次。今天的故障发生于16:01~16:07期间,发现故障后我们立即重启阿里云RDS实例,重启后恢复正常。正准备发布这篇故障公告时,数据库服务器又出现CPU100%,我们立即改用主备切换......
  • 使用funcgraph-retval和bpftrace/kprobe快速定位并解决cpu控制器无法使能的问题
    版本Linux6.5背景在学习cgroupv2的时候,想给子cgroup开启cpu控制器结果失败了:#查看可以开启哪些控制器root@ubuntu-vm:/sys/fs/cgroup#catcgroup.controllerscpusetcpuiomemoryhugetlbpidsrdmamisc#上面看到,是支持cpu控制器的,通过下面命令查看目前子cgroup开启......
  • SpringBoot Seata 死锁问题排查
    现象描述:SpringBoot项目,启动的时候卡住了,一直卡在那里不动,没有报错,也没有日志输出但是,奇怪的是,本地可以正常启动好吧,姑且先不深究为什么本地可以启动而部署到服务器上就无法启动的问题,这个不是重点,重点是怎么让它启动起来。(PS:我猜测可能是环境不同造成的,包括操作系统不同和JD......