【问题标题】:Upstart: each process on different core新贵:不同核心上的每个进程
【发布时间】:2013-02-03 06:36:45
【问题描述】:

我正在尝试使用 upstart 来启动 node.js 的多个实例 - 每个实例都在不同的 cpu 核心上侦听不同的端口。

启动配置:

start on startup

task

env NUM_WORKERS=2

script
  for i in `seq 1 $NUM_WORKERS`
  do
    start worker N=$i
  done
end script

工作器配置:

instance $N

script
    export HOME="/node"

    echo $$ > /var/run/worker-$N.pid
    exec sudo -u root /usr/local/bin/node /node/server.js >> /var/log/worker-$N.sys.log 2>&1
end script

如何指定每个进程应在单独的核心上启动以扩展盒子内的 node.js?

【问题讨论】:

  • 您是否考虑过使用内置的cluster 支持来代替?这样你的工人就可以共享同一个端口。此外,您必须依靠操作系统的调度程序来平衡可用 CPU 之间的计算工作,这也是正确的做法。
  • 请注意cluster 模块仍处于稳定性 1 - 实验性。如果您正在使用它,请记住这一点。
  • 是的,我知道cluster,但我想使用nginx 在端口之间进行内部负载平衡,然后使用upstartmonit 确保所有工作人员都在运行。那么,有没有办法将工作人员分散到 cpu 核心上,每个核心一个?我在新贵的食谱中找不到任何有关此的信息。任何帮助将不胜感激。

标签: node.js upstart


【解决方案1】:

taskset 允许您为任何 Linux 进程设置 CPU 关联性。但 Linux 内核已经倾向于将进程保持在同一个 CPU 上以优化性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2012-04-19
    • 2010-12-15
    相关资源
    最近更新 更多