Nginx 服务器性能Bug和优化方案(真实经历)

一、遇到的问题

1、问题:本应该是3个ffmpeg ,但是怎么会有5个ffmpeg出现?

2、Lua脚本问题,一直写入日志,导致有大量的日志,这里的错误日志是直接写进nginx的error.log 日志文件的

(1)日志文件

total 1.8G
-rw-r--r-- 1 root root  11M May  9 21:47 access.log
-rw-r--r-- 1 root root 3.1K May  9 21:46 error.log
-rw-r--r-- 1 root root 705M May  9 21:44 live_access.log
-rw-r--r-- 1 root root 1.1G May  9 21:44 nginx_error.log

2017/05/09 21:43:05 时间段详细记录:

2017/05/09 21:43:05 [notice] 154005#0: *2276339 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276301 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255428 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2255382 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2276989 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276946 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255373 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2277509 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255426 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2276852 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276850 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276811 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276416 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276558 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276495 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255454 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2280641 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2255417 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255401 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2257856 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255428 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255372 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255426 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255396 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2276402 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2254567 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255436 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255387 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2276423 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255460 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2255443 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2277380 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276203 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276375 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255467 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2255404 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255485 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2276709 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255473 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2255419 "\.m3u8" matches "/live/C
2017/05/09 21:43:05 [notice] 154005#0: *2255443 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255456 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255480 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255460 "\.m3u8" does not match "
2017/05/09 21:43:05 [notice] 154005#0: *2255467 "\.m3u8" does not match "

2017/05/09 21:43:06 时间段详细记录:

2017/05/09 21:43:06 [notice] 154005#0: *2276219 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255463 "\.m3u8" does not match
2017/05/09 21:43:06 [info] 154005#0: *2280641 client 59.47.230.140 close
2017/05/09 21:43:06 [notice] 154005#0: *2255438 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2276179 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 129532#0: signal 1 (SIGHUP) received, recon
2017/05/09 21:43:06 [notice] 129532#0: reconfiguring
2017/05/09 21:43:06 [notice] 154005#0: *2255469 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255482 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2254624 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255498 "\.m3u8" matches "/live/
2017/05/09 21:43:06 [notice] 154005#0: *2255503 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255473 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2276387 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255496 "\.m3u8" matches "/live/
2017/05/09 21:43:06 [notice] 154005#0: *2255407 "\.m3u8" matches "/live/
2017/05/09 21:43:06 [notice] 154005#0: *2255337 "\.m3u8" matches "/live/
2017/05/09 21:43:06 [notice] 154005#0: *2255472 "\.m3u8" matches "/live/
2017/05/09 21:43:06 [notice] 154005#0: *2276430 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255519 "\.m3u8" matches "/live/
2017/05/09 21:43:06 [notice] 154005#0: *2255439 "\.m3u8" matches "/live/
2017/05/09 21:43:06 [notice] 154005#0: *2255396 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2276635 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255494 "\.m3u8" matches "/live/
2017/05/09 21:43:06 [notice] 154005#0: *2255498 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2280695 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255515 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: *2255459 "\.m3u8" does not match
2017/05/09 21:43:06 [notice] 154005#0: gracefully shutting down
2017/05/09 21:43:06 [notice] 154005#0: *2277200 "\.m3u8" does not match 

(2)Lua脚本日志写入:

if ( tonumber(res) == 0 or tonumber(res) == 1 ) then          -- 不是签名验证,则直接返回
   ngx.log(ngx.ERR, "error : 不是签名验证,则直接返回::res=== ",res)
    return
end

解决办法:立即关闭该日志的写入,重启nginx服务器 reload

3、他们摄像头推流,直播结束后ffmpeg 进程一直在

4、是否针对播流权限认真是否取消掉?

6、流状态列表查看(必须的联系他们的人员怎么处理),没有推流但是nginx服务状态一直存在

 解决方案:

修改nginx rtmp配置参数,添加这个参数:drop_idle_publisher 10s;

drop_idle_publisher
语法:drop_idle_publisher timeout
上下文:rtmp, server, application
描述:终止指定时间内闲置(没有音频/视频数据)的发布连接。默认为 off。注意这个仅仅对于发布模式的连接起作用(发送 publish 命令之后)。

时间: 2024-10-04 13:19:02

Nginx 服务器性能Bug和优化方案(真实经历)的相关文章

Nginx服务器性能优化配置

在大多数情况下,一个常规安装的nginx服务器对你的网站来已经是能很好地工作的了.然而,如果你真的想挤压出nginx的性能,你必须更深入 一些.在这时我们将解释Nginx的那些设置可以微调,以优化在处理大量客户端请求时的性能.需要注意一点的是这不是一个全面的微调指南,而是一个简单的 可以通过微调来提高性能设置的概述.请根据实际情况使用. 基本的 (优化过的)配置 我们这里要修改的唯一文件是nginx.conf,其中包含Nginx不同模块的所有设置.通常情况下你能够在服务器的/etc/nginx目

Linux服务器性能评估与优化(一)

网络内容总结(感谢原创) 1.前言简介 一.影响Linux服务器性能的因素 1. 操作系统级 性能调优是找出系统瓶颈并消除这些瓶颈的过程. 很多系统管理员认为性能调优仅仅是调整一下内核的参数即可解决问题, 事实上情况并不是这样. 性能调优是实现操作系统的各个子系统之间的平衡性,这些子系统包括: ?       CPU ?       内存 ?       磁盘I/O带宽 ?       网络I/O带宽 子系统之间相互依存,任何一个子系统的负载过度都能导致其他子系统出现问题,例如: * 大量的 p

linux服务器性能分析与优化

#1 查看硬件产品名称dmidecode |grep 'Product Name' #2 查看主板序列号dmidecode |grep -i 'serial number' |grep CN #3 查看CPU型号grep name /proc/cpuinfo #4 查看CPU个(核)数:grep 'physical id' /proc/cpuinfo #5 查看cpu使用情况top #6 查看内存信息grep MemTotal /proc/meminfo free -mvmstat #7 查看分

Linux服务器性能评估与优化(二)

网络内容总结(感谢原创) 1.Linux内核参数优化 内核参数是用户和系统内核之间交互的一个接口,通过这个接口,用户可以在系统运行的同时动态更新内核配置,而这些内核参数是通过Linux Proc文件系统存在的.因此,可以通过调整Proc文件系统达到优化Linux性能的目的. 一.sysctl命令 sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysctl [-n] [-e] -w v

vue-小爱ADMIN系列文章(二):微信微博等分享,国际化,前端性能优化,nginx服务器部署

最近在做我的小爱ADMIN后台管理系统,结合当前市场后台管理系统对相关功能的需求,我又开始新增了一些新的功能和组件,如分享功能组件,项目国际化功能:项目完成后,部署在nginx服务器,发现首次访问的速度特别慢,严重的影响了用户体验,因此,我又开始进行了一系列的前端性能优化;以及将优化后的项目部署到nginx服务器二级子目录的注意细节. 效果演示地址 github地址 分享功能 背景说明 用微信,微博等做网站的第三方登录及用微信和支付宝进行支付,都需要注册开发者账号和添加网站应用,比较麻烦.另外,

网站应用服务器性能优化方案总结

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

Nginx配置性能优化

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了.而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了.然而,如果你真的想挤压出Nginx的性能,你必须更深入一些.在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能.需要注意一点,这不是一个全面的微调指南.这是一个简单的预览——那些可以通过微调来提高性能设置的概述.你的情况可能不同. 基本的 (优化过的)配置

GNU Linux高并发性能优化方案

/*********************************************************** * Author : Samson * Date : 07/14/2015 * Test platform: * gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 * GNU bash, 4.3.11(1)-release (x86_64-pc-linux-gnu) * Nginx version: * Nginx 1.6.2 * Nginx 1.8.0

Web服务器性能优化

Web 服务器性能与站点访问性能优化思路 要优化 Web 服务器的性能,我们先来看看 Web 服务器在 web 页面处理上的步骤:1.Web 浏览器向一个特定的服务器发出 Web 页面请求;2.Web 服务器接收到 web 页面请求后,寻找所请求的 web 页面,并将所请求的 Web 页面传送给 Web 浏览器;3.Web 浏览器接收到所请求的 web 页面内容,并将它显示出来. 上面三个步骤都关系 Web 服务器,但实际 Web 服务器性能相关最大的是在第 2 步,这里 Web 服务器需要寻找