【发布时间】:2012-11-13 19:45:14
【问题描述】:
我的 node.js 服务器将生成一个子进程,该子进程启动 VLC 以拍摄视频照片,然后发回照片。
使用 nginx 作为负载均衡器,我将拥有 4 个 node.js 实例(我的服务器内核数)。有 4 个不同的视频文件(每个实例一个)更好吗?
【问题讨论】:
我的 node.js 服务器将生成一个子进程,该子进程启动 VLC 以拍摄视频照片,然后发回照片。
使用 nginx 作为负载均衡器,我将拥有 4 个 node.js 实例(我的服务器内核数)。有 4 个不同的视频文件(每个实例一个)更好吗?
【问题讨论】:
由于您正在生成一个子进程,因此节点在技术上根本不与视频交互,它正在与 VLC 交互,而 VLC 正在与视频交互。所以它会产生四个不同的 VLC 进程。因此,如果子进程可以从拥有自己的视频中获得任何好处,并且您将拥有与您请求的一样多的子进程,那么实际上这将是一个更多的问题。
根据我从问题中了解到的情况,该视频可能正在流式传输,并且您想从中拍摄静止图像,在这种情况下,我会花时间作为参数,并像这样启动 VLC 子进程:
C:\VideoLAN\VLC>vlc "path/to/video" --video-filter=scene
--vout=dummy --start-time=1 --stop-time=5 --scene-ratio=1
--scene-prefix=img- --scene-path=path/to/image vlc://quit
VLC 应该能够处理多次访问此文件(每个请求一次)。
【讨论】:
cat /proc/sys/fs/file-max 查看它们。在您的情况下,我要做的是对性能进行基准测试,看看它可以处理多少请求。构建一个运行测试的简单应用程序,然后增加并发调用并再次运行测试。这应该让您了解每个请求所占用的资源。我还建议使用Node Time 来检查配置文件。编码快乐!