TSINGSEE青犀视频开发的视频平台都具备Windows和Linux的运行版本,可以根据需求*选择。当遇到项目现场有流量较大的情况,大多数用户都比较担心对CPU的占用,这种情况可以通过开启按需播放来缓解CPU压力。但是在此种情况外,如果仍有CPU不正常的暴涨,应该如何排查?
有的项目现场将EasyCVR部署到Linux服务器上后,运行1周后出现CPU暴涨的现象,占用率一直维持在98%,无法降下来。
解决问题的第一步是需要找出CPU高的原因。Linux提供了一些系统指令,可以直接定位到消耗CPU的具体线程,下面将介绍如何定位CPU高的问题。
1.工具安装pstack : yum install gdb -y
然后执行指令重定向输出到a.log文件中
pstack 进程ID >a.log
2.查看线程CPU占用
Ps -T -p 线程ID
可以看到线程ID为12739和12380两个线程占用的CPU均为95%,这是一个2核的CPU,所以CPU已经满了。
3、根据2中定位的线程id,在a.log中定位具体线程信息,发现2个线程占用CPU满的原因是出现了死锁。
到目前为止已经定位出CPU暴涨且无法下降的原因了,接下来的步骤就是对具体问题进行具体的优化及解决即可,此处不过多赘述。