0

问题标题很尴尬,抱歉。

我目前正在设计服务器,我的一位同事提出了我们应该使用多个进程的评论,因为在单个进程中拥有太多线程(而不是拥有相同数量的线程分布在同一台机器上的多个进程中)

我能想到的唯一会导致这种情况(除了糟糕的操作系统调度),将来自竞争增加(例如在内存分配器上),但我不确定这有多重要。

这是“最佳实践”吗?有没有人可以与我分享一些基准?当然答案可能取决于平台(我主要对 windows/linux/osx 感兴趣,虽然我需要在一定程度上关心 HP-UX、AIX 和 Solaris)

使用多进程架构当然还有其他好处,例如进程隔离以限制崩溃的影响,但我对这个问题的性能感兴趣。

在某些情况下,服务器将服务于长时间运行的有状态连接(因此它们不能迁移到其他服务器进程),这些连接会发回大量数据,并且还会导致服务器机器上的大量本地 DB 处理。它将在进程内使用前摄器架构并在 C++ 中实现。预计服务器将运行数周/数月而无需重新启动(尽管这可以通过在某些代理下透明地轮换新实例来实现)。

此外,我们使用多进程架构,我更关心的是调度与进程的连接。

4

0 回答 0