我有一个网服务的运行上的3个服务器。该woreking如下 -服务器1的接收用户要求的商店它在本地数据库和一些工作。-服务器2和3的相同和在主要工作的马,他们根据请求获取信息是从互联网和返回。-服务器1的电话服务器2/3通过http请求,通过局域网。(有php on server2和3所以服务器1呼叫它 http://localip/script.php) -服务器1alternatevely电话服务器、2或3(这样做是为了分发荷载) 每个查询服务器上的2/3需要大约8秒的过程。现在,当我安装一个监测工具的所有服务器上发现1是具有太多的负载(这表明数量的过程>关键的限制) 这是不平衡的负担?我如何可以减少载荷在1?

有帮助吗?

解决方案

服务1,以应对进入的要求从用户。所以如果你有确定它是瓶颈,然后你需要集中你的注意力。

如果服务器2和3只进行查询互联网上,然后他们可能不这样做太多的工作处理器/磁盘明智的。

如果你有2个服务器的配置做一个合理的容易的任务,你的主的面向用户的服务器过载它可能是更好只是以运行所有3个服务器的用户面对的问题。

从你所描述的这听起来像服务器#1的阻塞应从服务器2和3,这意味着它已经举行公开许多连接的可能.如果服务器2和3是不是真的不那么多的工作,因为他们的任务是就互联网查询很可能会更好地服务于通过合并面向用户的服务器和查询的动机进入一个服务器和分发用户载在所有3个服务器。

在此方式,每台服务器有更少公开的用户连接。和查询的动机仍然不占用资源的(如果它是只是web请求),使它不产生负面影响用户的性能。

只是一些想法。这不可能是完全明确,不知道更多关于你的应用程序。

其他评论意见

正如在评论你应该找到一个适当的负载均衡的,一个良好的硬件负载平衡器的第一项建议。你在哪里运行你的服务器?如果他们是在一个云数据中心,例如亚马逊EC2机架空,等等然后负载平衡服务是轻易提供给你。

你也可以使用软件的负载均衡器。Apache提供这种功能甚至:

http://httpd.apache.org/docs/current/mod/mod_proxy_balancer.html

即使当前的配置将有可能把Apache在前面的一个服务器然后为你这样的服务器使用Apache(做的负载平衡)获取一个较低比例的流量,以抵消的费用Apache server。在这种情况下你有没有硬件的变化。虽然你有一个明显的单一故障点,无异于你现在有什么不过,一个适当的负载平衡器一般减轻了单一故障点问题你目前有你的架构。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top