用nginx做转发私有协议的视频流,为什么recv-q会满呢?

xinfei_young 2014-12-05 06:47:22
用nginx做转发私有协议的视频流,我只做收流,没有做其他任何事情,为什么recv-q会满呢?感觉是nginx虽然是epoll模式,但是收包还是很慢
...全文
2086 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
哇哈哈225 2016-08-04
  • 打赏
  • 举报
回复
我也遇到了你的问题,可以说具体点儿吗,怎样去解决
xinfei_young 2014-12-11
  • 打赏
  • 举报
回复
解决了,还是跟自己收数据有关系,在ET模式下,就是要一直收,直到收不到为止
xinfei_young 2014-12-10
  • 打赏
  • 举报
回复
经过验证,由于是ET模式,EPOLLIN的触发次数没有客户端发送的次数多,所以导致缓冲区会一直累积,直到缓冲区慢,tcp window full。我用自己写的epoll ET 模式下的server都是可以很快收完的,不会有累积。所以关键原因还是ngx 收的慢,从触发EPOLLIN事件到调用recv回调函数经过了一段时间,不知道正不正确,为什么这么慢?
xinfei_young 2014-12-09
  • 打赏
  • 举报
回复
没人回答,好大的坑啊
xinfei_young 2014-12-08
  • 打赏
  • 举报
回复
这么久都没有人回答,我还是靠自己把,准备重新写一个测试的主模块,监听完了之后,就一直接受包,不做其他任何的事情,看看会不会有这个情况,如果还是有的话,那就是nginx的问题了
xinfei_young 2014-12-08
  • 打赏
  • 举报
回复
配置文件只设置了一个port
xinfei_young 2014-12-08
  • 打赏
  • 举报
回复
自己做了一个测试验证了一下,只收包,nginx还是收的很慢,recv-q还是会满,nginx为什么收流这么慢呢?难道是我哪里设置错了?rtmp模块都是可与转发流的啊

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧