[记录一个bug]流媒体服务瓶颈排查
一、抛砖
最近有一个服务器上的rtmp直播服务,搭载了1k路后,无法支撑高码率如6M 8M的视频推流,推流会导致掉帧到个位数。但是看了top和vmstat,没发现明显的瓶颈。程序的单进程多线程,但是在另一台配置更低的服务器上,却没问题。
所以这里干脆记录下瓶颈排查步骤和方法吧。
二、引玉
1、top+vmstat排查
top看内存占用,以及cpu占用。可以初步看%Cpu(s)这列的wa和si。
vmstat 1 可以看cs那列的上下文切换,不应高得太过离谱,可以尝试增减业务量,来看切换次数是否到瓶颈上不去。
我这里是都不高。
2、网络带宽排查
可以通过更换推流端机器,更换内网环境进行测试。
或者用nload命令来看带宽负载情况,可以增加测试,如果上不去,是不是接错网口,是不是接错低功率交换器,是不是网线问题。
3、查看程序情况
利用top -Hp pid 来查看程序的线程负载情况,其实也不高
用perf工具查看进程系统调用情况
perf stat -adp pid
perf top -p pid
看了发现没有负载特别高的调用,也没有死锁之类的
4、查看io情况,排除磁盘io
关闭m3u8协