gpt4 book ai didi

performance - 多核/多处理器是否有助于 Web 服务器的性能?

转载 作者:行者123 更新时间:2023-12-04 03:08:53 27 4
gpt4 key购买 nike

NGINX 或 Apache 是否受益于具有以下任一项的服务器:

  • 多核,或者

  • 多个处理器?

如果是,为什么?

最佳答案

使用多个 CPU/CPU 内核使服务器应用程序有机会并行处理多个客户端连接(和请求)(实现更高的性能)。

在多核 CPU 的世界中,这个问题已成为广泛研究的主题。

有 3 种解决并行性的方法(如多核 CPU):

  1. 使用多个进程;

  2. 在单个进程中使用多个线程;

  3. 在多个进程中使用多个线程。

Apache 已经探索了几种模型,而 Nginx 使用的是选项 #1。

哪种模型性能更好通常被认为是一个实现问题(至少在 Unix 下,进程非常轻,因此它们可以与线程竞争)。

现在,回到我的猜测(基于已发布的阅读测试 here )的问题,正确的(多线程)Apache 架构应该比 Nginx 在多核 CPU 上的扩展性更好。

自相矛盾的是,这并不意味着 Apache 比 Nginx 更快:它只是意味着在 1、2、3、... 16 个内核上,Apache 的扩展性会比 Nginx 更好,而 Nginx 会处理更多的客户端请求:

  • 性能要快(在单核 CPU 上每秒处理更多的请求)

  • 可扩展性是指随着 CPU 核心数量的增加每秒处理更多请求的能力(理想情况是线性扩展:当 CPU 核心数量增加一倍时每秒请求增加一倍)。

如果可扩展服务器的每秒请求数低于未扩展服务器的速度,那么在没有性能的情况下进行扩展是没有意义的(请注意,如果服务器真的可以很好地扩展,那么应该有很多核心使其性能优于未扩展的服务器)。

在没有扩展的情况下执行会使服务器无法利用多核 CPU。

future 肯定会由服务器应用程序组成,它们可以正确地做到这两点,以在所有条件下(仅几个内核或许多内核)提供最佳性能。

关于performance - 多核/多处理器是否有助于 Web 服务器的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7925862/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com