28圈.com

nginxvideo100%机能阐发到底怎么样 实测视频服务负载能力后有了答案

nginxvideo100%机能阐发到底怎么样 实测视频服务负载能力后有了答案

先说结论:nginx做视频服务,,,,, ,,,跑到100%负载不代表它撑不住了。。。。。?

这个nginxvideo100%组合起来看,,,,, ,,,说的是nginx在服务视频要求使丶满CPU的情况。。。。。好多人一看100%就慌,,,,, ,,,感触服务器要崩了,,,,, ,,,其实没那回事。。。。。视频要求跟通常网页要求不一样,,,,, ,,,它走的是长衔接,,,,, ,,,一个衔接挂在那儿可能要持续几十秒甚至几分钟,,,,, ,,,CPU占比高是正常的贸易行为,,,,, ,,,不蹬宗死机。。。。。

? 先把nginx视频服务的负载逻辑捋明显

nginx在处置视频文件时,,,,, ,,,主题工作是读磁盘、推网络,,,,, ,,,这两个作为都吃CPU。。。。。尤其是高并发场景下,,,,, ,,,好比你一个视频文件同时被几百人点播,,,,, ,,,nginx要同时维持这些衔接,,,,, ,,,每来一个要求,,,,, ,,,它都要分配资源去响应。。。。。100%负载的意思就是nginx把CPU算力全花在响应视频要求上了,,,,, ,,,而不是说它卡死或者回绝服务。。。。。

实测下来,,,,, ,,,在纯视频点播场景里,,,,, ,,,nginx跑到100%负载时依然能把视频流不变推给客户端。。。。。这个结论好多运维老手都知路,,,,, ,,,但我发现还是有不少人一看到监控面板上那个100%就半夜打电话找技术群里的人求救。。。。。

? 真正要关切的不是100%自身,,,,, ,,,而是它的阐发状态

nginxvideo100%分两种阐发。。。。。一种是你明明没有几多人在看视频,,,,, ,,,nginx负载却忽然冲到100%,,,,, ,,,这种情况要查是不是有爬虫在疯狂拉视频链接,,,,, ,,,或者有没有人恶意刷接口。。。。。另一种是视频接见量的确上来了,,,,, ,,,nginx负载天然顶满,,,,, ,,,这种时辰只有视频播放不卡顿、客户端能正常拉流,,,,, ,,,就没大事。。。。。

我记得有一次压测,,,,, ,,,开了500个并发视频要求,,,,, ,,,nginx直接顶着100%负载跑了半个多幼时,,,,, ,,,日志里没出现一条超时纪录。。。。。那次之后我就不再盯着CPU百分比看了,,,,, ,,,改成看要求响应功夫和丢包率,,,,, ,,,这两个指标才真正反映服务质量。。。。。

? nginx跑视频服务,,,,, ,,,配置上有个容易踩的坑

好多人以为视频服务就是配个root蹊径而后让人直接接见mp4文件,,,,, ,,,这么做其实不够。。。。。nginx的CPU开销很大一部门花在磁盘IO期待上,,,,, ,,,若是你不开启sendfile指令,,,,, ,,,nginx会把文件数据先读到用户态再发出去,,,,, ,,,这个操作在视频这种大文件场景下极其浪费CPU。。。。????? ???藄endfile之后,,,,, ,,,数据从内核直接走网卡发出去,,,,, ,,,CPU占用能降好几个档次。。。。。

还有gzip压缩,,,,, ,,,视频文件自身根基已经压缩过了,,,,, ,,,你再给视频响应开gzip,,,,, ,,,nginx会白白亏损CPU去尝试压缩正本就压不动的内容,,,,, ,,,纯属助倒忙。。。。。? 把gzip关掉,,,,, ,,,专让nginx去向理视频转发,,,,, ,,,你会发现同样的硬件配置下,,,,, ,,,nginxvideo100%的呈显斓率会低好多。。。。。

另表就是线程池的配置。。。。。nginx默认的同步IO模式在高并发视频要求下,,,,, ,,,每个worker过程都可能被阻塞在磁盘读取上。。。。。用aio或者thread pool,,,,, ,,,让磁盘读取异步化,,,,, ,,,nginx的并发承载能力会有显著提升。。。。。实测CPU占用能够降30%以上,,,,, ,,,这个优化值得做。。。。。

? 说说nginx视频服务的一个常被忽视的优势

nginx对视频这块支持得很齐全,,,,, ,,,mp4????? ???槟芄蛔鰏tart参数支持的拖动播放,,,,, ,,,Flv????? ???榇χ弥辈チ饕埠芪龋,, ,,,关键是它把这些能力都做成了轻量????? ???椤!。。。同样是扛视频流量,,,,, ,,,nginx的内存占用比好多贸易媒体服务器低太多。。。。。我之前在一台只有2G内存的云主机上跑nginx视频服务,,,,, ,,,扛住了百人同时在线的点播,,,,, ,,,这放在其他规划里想都不敢想。。。。。

当然了,,,,, ,,,nginx终于不是专用流媒体服务器,,,,, ,,,像HLS切片封装、自适应码率这些高级职能它做不了,,,,, ,,,得共同ffmpeg或者专门的CDN来干。。。。。但你要是说就想用nginx老厚道实把视频文件分发给用户,,,,, ,,,它就是这个场景下最切实的选择。。。。。

有没有遇到过nginx视频服务负载高但用户还反馈卡顿的情况????? ???那种时辰你查的注定不是CPU,,,,, ,,,而是此外瓶颈了。。。。。?

[责任编纂:朱晓东]

为您推荐

热点文章

杰出视频

凤凰资讯官方微信
凤凰资讯官方微信
关注更多资讯
【网站地图】【sitemap】