背景:我的处理器是AMD 2600X,12线程
我想做一个视频播放网站,用的express框架,把视频放到public静态目录下,我发现同时打开7个播放视频的网页,再打开视频就是视频加载不出来的状态,一直转圈,我知道这是单个nodejs处理不过来了,于是用了pm2,发现在一段时间内所有请求都被分配到同一个进程上了,依然解决不了问题,再后来我换成了cluster模块,像这样去启动
然后我还写了个接口返回进程的pid,发现在一段时间里,所有的请求也是被分配到了同一个进程上,还是解决不了问题,真心的请教各位大佬们,我该怎么做才能充分的利用处理器的性能,达到流畅的播放
因为我无论怎么新建无痕窗口或者用其它浏览器访问,返回的pid都是一样的。
我顺便补充一下,如果只有一台机器,用nginx ,请求还是被分配到这台机器,还是那个进程,还是没充分利用机器的性能。
最终目的是想让每个请求,被均匀的分配到不同的进程上,像负载均衡一样
和服务器关系不大吧?http2 试试呢?而且这种静态服务 nginx 就可以了。一般不会用 express 吧
而且这个第七个就不好使了,你不觉得是你触发了什么机制嘛?
chrome 同域名请求限制 6 个
你可以通过划分域名来测试。也可以通过手动阻塞来测试。
pm2 的话请求默认也不会落到同一个服务上,是否开启了基于 ip 的策略?
基于上面说到的,有两个方案了
我补了一个阻塞图,一个是发起十次请求,一个是
也补了一个同步发请求,服务端做 sleep。