【问题标题】:node.js reading file multiple instancesnode.js读取文件多个实例
【发布时间】:2012-11-13 19:45:14
【问题描述】:

我的 node.js 服务器将生成一个子进程,该子进程启动 VLC 以拍摄视频照片,然后发回照片。

使用 nginx 作为负载均衡器,我将拥有 4 个 node.js 实例(我的服务器内核数)。有 4 个不同的视频文件(每个实例一个)更好吗?

【问题讨论】:

    标签: node.js io vlc


    【解决方案1】:

    由于您正在生成一个子进程,因此节点在技术上根本不与视频交互,它正在与 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 应该能够处理多次访问此文件(每个请求一次)。

    【讨论】:

    • 这正是我为 VLC 提供的代码 ;) 在您看来,我是否应该创建四个视频副本?谢谢
    • 这实际上取决于您的硬件设置,但是我想这不会有太大的不同,因为我假设您在到达文件 i/o 之前会在大多数机器上耗尽内存墙。
    • 在这种情况下我如何知道我的机器是否会耗尽内存?究竟什么是“文件 i/o 墙”?非常感谢您的帮助
    • 最终,任何程序给定 n 个请求,您将耗尽内存,这仅取决于该进程可以处理多少请求。您的操作系统有打开文件限制,您可以使用:cat /proc/sys/fs/file-max 查看它们。在您的情况下,我要做的是对性能进行基准测试,看看它可以处理多少请求。构建一个运行测试的简单应用程序,然后增加并发调用并再次运行测试。这应该让您了解每个请求所占用的资源。我还建议使用Node Time 来检查配置文件。编码快乐!
    猜你喜欢
    • 1970-01-01
    • 2020-04-26
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 2012-06-28
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多