拥有更多的 CPU 内核是否更适合运行 Web 服务器?

Son*_*ngo 5 linux cpu freebsd operating-systems multi-core

我正在阅读有关如何将用户线程映射到Wikipedia上的内核线程的信息。从这篇文章我了解到 FreeBSD 使用 1:1(内核级线程)。

所以应用程序创建的每个 User 线程都映射到一个 Kernel 线程。如果我假设我正在构建一个 Web 服务器来处理线程中的每个新请求,并且我在 FreeBSD 上运行,那么增加内核数量会提高应用程序的整体性能吗?

我读过这个问题CPU 内核:越多越好?,但我希望答案的范围特别受用户线程和内核线程之间的 1:1 映射的影响。

Bia*_*apy 5

简短的回答是肯定的。

长答案是……拥有更多的 CPU 内核意味着拥有更多的处理能力。对于 PHP / Ruby / Python / 等 Web 应用程序,这意味着有更多资源来处理同时连接。在负载繁重的应用程序的情况下,拥有更多内核确实会有所不同。

我个人的观点是,如果在更多处理能力和更多 RAM 之间进行选择,我在大多数情况下会选择更多 RAM。使用 RAM,您可以减少磁盘 I/O 的瓶颈。

通过使用诸如PHP APCVarnishMySQL 调优(表缓存、查询缓存等)等缓存系统,您可以极大地提高网站性能,而无需更多 CPU 能力来生成内容。

如果您的网站可以缓存,请做出此选择。从长远来看,仅仅增加 CPU 内核的数量是一种失败的选择。