如何规划 Plan Server 停机时间

如何规划 Plan Server 停机时间

我在这个新地方工作,托管的应用程序应该为该国特定类型的组织提供服务。我们通常会停机。这些服务器容量很大。上次停机时发现服务器在处理每秒约 8000 个请求时出现问题。解决这个问题的方法是恢复到备份服务器并立即向服务器添加更多 RAM,然后重新启动服务器。目前我们正在处理大约 15% 的组织,我相信在未来 5 - 10 年内,处理的组织将增加到 50 - 80%。

对我来说,我们不能继续添加 RAM、重新启动服务器和购买高端服务器。我不知道该组织购买服务器的指导政策,因为我是新来的。我的问题是:1. 需要对这些服务器及其应用程序做些什么,以避免此类停机时间并预测未来更大的负载?我在服务器管理方面经验不足。2. 由于这不是我的职责和部门,如何最好地将这些问题的解决方案传递给管理层。我希望我在正确的 stackexchange 网站上提出这个问题。

答案1

我想问的第一个问题是,您提供的这个应用程序是否可以在集群设置中工作?

如果是这样,则可以通过设置负载平衡的集群环境来解决未来的扩展和尝试覆盖机器停机时间的问题。

其工作方式(简单地说)是您拥有一组相同的服务器,它们为您提供的应用程序提供服务。以“逻辑”的方式,您在这些机器前面有一个负载均衡器(由于是冗余的,因此最好在集群中也有 2 个负载均衡器)。

当客户端希望连接到应用程序时,该负载均衡器将根据某些参数告诉客户端要连接哪个单独的服务器。

这些参数的范围可以是:机器上的单独负载,然后尝试保持所有服务器上的负载相同,或者这可能是一种以循环方式进行负载平衡的“愚蠢”方式。

使用循环法您可以分配:

client 1 To Server 1
Client 2 To Server 2
Client 3 To Server 3
Client 4 To Server 1
Client 5 To Server 2
Client 6 To Server 3

这如何“处理”停机时间?好吧,这允许您无缝地从负载平衡器池中删除客户端计算机,这样它就不会被使用(取决于您提供的负载平衡器和软件,您还可以将服务器“耗尽”到不同的机器上,以便主动清空需要停机进行维护或类似操作的服务器之一。

如何实现无缝扩展来处理更高的负载?

您可以“只”将一台额外的服务器插入负载平衡池。这不需要您将当前机器离线以添加更多 RAM 或类似的东西,而且是无缝的。一旦机器被添加到负载平衡池,它就会接收连接并开始为其他客户端提供服务。将其与“聪明的”负载平衡机制结合使用还可以处理您可能遇到的任何负载峰值(例如,在为票务平台等 Web 应用程序提供服务时)。只需将几台机器添加到池中以处理您预期的额外负载,然后在它们耗尽后将其移除即可处理负载峰值。

希望这对您有帮助。

答案2

回答你的问题如何规划 Plan Server 停机时间,这主要是服务水平协议问题。合同中通常会规定维护期限,例如:

每月第二个和第四个星期二 20:00 至 24:00 GMT 之间是 XYZ 服务计划维护的预定服务窗口。计划变更将于前一个星期一 13:00 GMT 之前在网站上发布万维网...和/或电子邮件分发列表维护@...。此服务窗口之外的紧急维护可由服务提供商自行决定安排……

因此,请查阅服务水平协议 (SLA),并根据合同条款规划维护。

首先在测试环境中测试计划的更改、数据迁移和回退方案,只有确定无误后才能继续进行生产系统。

你的问题的实际内容更像是:

如何随着使用量的增加而扩大规模?

通常,处理更多客户、更多用户和更大数据集时,可以归结为两个选项

  • 放大:购买更大更快的计算机系统,您已经在这样做了。更大的服务器,配备更多 CPU、更多内存、更多磁盘、更快的存储、更快的 CPU 等。这通常在一定程度上有效,但最终您可能会达到一个点,要么您的预算不允许更多,要么没有更强大的服务器可供您购买。

  • 向外扩展:将负载分散到多台服务器上,而不是较大的单台服务器上。最佳方法取决于实际应用程序的运行方式以及您对此的控制程度。

横向扩展场景中的常见第一步是专用数据库服务器和运行应用程序本身的单独服务器。

另一种常见的方法是拥有多台服务器,每台服务器都有一个应用程序实例,并为特定的用户子集保留,即服务器 1 上的客户 A 和 B、服务器 2 上的客户 C 和 D 等等。

Web 应用程序的常见方法是使用负载平衡集群,其中具有多台相同配置的服务器,每台服务器运行相同版本的 Web 应用程序,以及一个在这些服务器上均匀分配请求的负载平衡器。

相关内容