EasyGBS平台出现CPU过高的现象是什么原因?如何解决?

EasyGBS是基于国标GB28181协议的视频平台,可支持视频直播、录像、云存储、检索与回放、云台控制、告警上报、语音对讲等功能。EasyGBS平台功能全面、综合性强、视频能力灵活,能够涵盖所有监控领域的需求,已经在大量的项目中落地应用,如明厨亮灶、平安乡村、雪亮工程等。

 

有用户反馈,在使用EasyGBS时,出现了CPU过高的情况,请求我们协助排查。今天来和大家分享一下排查及解决办法。

 

通过pprof工具分析发现,是下级信令异常,频繁发送给上级导致CPU过高。

添加如下代码,将下级的sip消息解析过后,设置对应的频率处理,如果是不重要的消息则直接忽略;如果是需要处理的消息,按照一定的间隔时间来处理,如此可以保证程序的稳定运行。

 

 


// Init the output area

	out.UriType = ""

	out.Method = nil

	out.StatusCode = nil

	out.User = nil

	out.Host = nil

	out.Port = nil

	out.UserType = nil

	out.Src = nil

	// Keep the source line if needed

	if keep_src {

		out.Src = v

	}

	// Loop through the bytes making up the line

	for pos < len(v) {

		// FSM

		switch state {

		case FIELD_NULL:

			if v[pos] >= 'A' && v[pos] <= 'S' && pos == 0 {

				state = FIELD_METHOD

				continue

			}
			

再次运行一段时间后查看EasyGBS页面的数据,此时CPU数据已经显示正常了。

 

EasyGBS强大的视频能力既可以作为业务平台,也能作为视频能力平台进行调用,此外平台级联功能可以实现平台与平台之间的数据互联互通、资源共享,在应用场景中达到视频资源汇聚、协同监督、平台联动等目的。感兴趣的用户可以前去演示平台进行体验,或者下载进行部署测试,欢迎大家的关注。

 

posted on 2022-05-11 15:08  EasyGBS  阅读(19)  评论(0编辑  收藏  举报