如何计划Plan Server停机时间

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

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

我要问的第一个问题是,你服务的这个应用程序是否可以在群集设置中工作?

如果是这样的话,扩展未来并试图覆盖机器停机时间可以通过build立一个负载平衡的集群环境来解决。

这样做的方式(简单地说)是你有一个服务器池是相同的,并为您提供的应用程序服务。 在一个“逻辑”的方式中,你有这些机器的前面有一个负载均衡器(在群集中冗余的最好是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应用程序时,可以通过简单地添加一些机器到游泳池,以满足您所期望的额外负载,并在之后一旦被排空后被移除。

希望这是帮助。

回答您的问题如何规划Plan Server停机时间 ,这主要是服务级别协议问题。 通常在合同中有一个规定的维护窗口,如:

格林尼治标准时间20:00至24:00之间的每两个星期二和第四个星期二是服务XYZ计划维护的预定服务窗口。 计划的变更将在格林尼治标准时间13:00之前在网站www …和/或电子邮件分发列表维护@ …上发布 。 在服务窗口之外的紧急维护可以由服务提供商自行决定。

因此,请查看服务级别协议(SLA),并根据您的合同中的条款规划您的维护。

首先在testing环境中testing计划的更改,数据迁移和备用scheme,并且只有在确定后才能进入生产系统。

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

如何扩大使用量?

通常处理更多的客户,更多的用户和更大的数据集,它归结为两个选项

  • 扩大规模 :购买更大,更快的电脑系统,你已经做了什么。 一个更大的服务器,有更多的CPU,更多的内存,更多的磁盘,更快的存储,更快的CPU等等。这通常在某种程度上起作用,尽pipe最终你可能会达到预算不允许更多,或者不存在一个更强大的服务器,让你购买了。

  • 向外扩展:将负载分散到多个服务器,而不是一个更大的单个服务器。 最好的方法取决于实际的应用程序的function和多less控制你。

横向扩展场景中常见的第一步是专用数据库服务器,并将应用程序本身分开运行。

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

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