何时升级服务器以包含更多核心、更多处理器或额外的服务器?

何时升级服务器以包含更多核心、更多处理器或额外的服务器?

服务器托管市场分为单处理器、双处理器、四处理器等,每个处理器有多个核心或 CPU。

我的公司将提供一款基于 Linux 的 Web 应用程序,该应用程序依赖于 Apache Web 服务器和中间层来实现业务逻辑。中间层用于处理数学运算并将结果返回给客户端。许多客户端可能会同时访问该应用程序。公司将从一个具有 4 个内核的处理器开始。我试图了解应用程序如何使用内核,然后如何随着业务的增长在服务器/处理器/内核方面扩展应用程序。

例如,我假设最初一个核心将用于 Apache,另外 3 个核心用于处理客户端的数学运算请求...

问题 1:这是否意味着,有了 3 个可用核心,我可以同时处理 3 个单独的客户端请求(例如,3 个核心各 1 个)?我的意思是,除了共享 RAM 之外,这是否实际上就像拥有 3 台独立的机器(从 pt 的角度来看或同时处理客户端请求)?或者,一次只能处理一个客户端的请求,但该客户端的请求最多分为 3 个核心,具体取决于运行的进行数学运算的进程类型以及它是否可以利用多线程(因此核心数量会影响任何一个客户端请求的完成速度)?我对这里的核心对应用程序意味着什么感到困惑。

问题 2:随着业务的增长,需要处理更多的客户端请求,服务器是否应该升级为 (A) 具有更多内核的新机器,(B) 具有两个处理器、每个处理器 4 个内核的新机器,或 (C) 保留原始服务器并添加另一台具有单个处理器的服务器?就每个时间间隔处理更多客户端请求而言,哪种方式可以提供最有效的应用程序扩展方法?例如,选择是否受 RAM 限制(当您需要的 RAM 超过机器可以处理的容量时,就该添加另一台服务器了),还是其他原因?

问题 3:同时处理的客户端请求总数是否等于核心数乘以服务器数量(减去 Apache 的一个核心)?

答案1

完全取决于应用程序架构以及应用程序本身的编写方式。

顺便说一句,1 个四核处理器和 2 个双核处理器之间实际上没有太大区别;有效重要的是核心的总数。

答案2

您对概念和架构存在误解。

您的假设 - “我假设最初一个核心将用于 Apache,其他 3 个核心用于处理客户端的数学运算请求...” 总体上是错误的。核心数量和同时处理的请求数量之间没有直接关系。

问题 2 很大程度上取决于服务的架构细节。使用内存、共享数据库、磁盘 IO(计算数学运算可以使用数 GB 的常量数组)

查看服务用户请求的时间表。

草案中:

apache 获取用户请求 -> 中间层进行数学运算 -> apache 将结果发送给用户

最好看看工作系统。瓶颈是什么?磁盘 IO、RAM 使用率还是 CPU 负载?

相关内容