Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 跨服务器的负载平衡_Php_Load Balancing_Time Wait - Fatal编程技术网

Php 跨服务器的负载平衡

Php 跨服务器的负载平衡,php,load-balancing,time-wait,Php,Load Balancing,Time Wait,我有一个在3台服务器上运行的web服务。令人担忧的是: -服务器1接收用户请求并将其存储在本地数据库上,并对其执行一些操作。 -服务器2和服务器3是相同的,它们是主要的工作马,它们根据请求从internet获取信息并返回。 -服务器1通过局域网上的http请求调用服务器2/3。(服务器2和3上有一个php脚本,所以服务器1将其称为) -服务器1交替调用服务器2或3(这样做是为了分配负载) 服务器2/3上的每个查询处理大约需要8秒。 现在,当我在所有服务器上安装监控工具时,它发现server1的负

我有一个在3台服务器上运行的web服务。令人担忧的是: -服务器1接收用户请求并将其存储在本地数据库上,并对其执行一些操作。 -服务器2和服务器3是相同的,它们是主要的工作马,它们根据请求从internet获取信息并返回。 -服务器1通过局域网上的http请求调用服务器2/3。(服务器2和3上有一个php脚本,所以服务器1将其称为) -服务器1交替调用服务器2或3(这样做是为了分配负载) 服务器2/3上的每个查询处理大约需要8秒。 现在,当我在所有服务器上安装监控工具时,它发现server1的负载太大(它显示了进程数>临界限制)
这不是平衡负载的方法吗?如何降低服务器1中的负载?

服务器1正在响应来自用户的传入请求。因此,如果你已经确定这是瓶颈,那么你需要把注意力集中在那里

如果服务器2和3只执行对internet的查询,那么它们可能在处理器/磁盘方面没有做太多工作

如果您有2台服务器被配置为完成一项相当简单的任务,并且您的主要面向用户的服务器正在过载,那么最好将所有3台服务器都作为面向用户的服务器运行

从您描述的情况来看,服务器1似乎正在阻止来自服务器2和3的响应,这意味着它必须保持打开的许多连接。如果服务器2和3实际上没有那么多工作,因为它们的任务只是internet查询,那么将面向用户的服务器和查询引擎合并到一个服务器中并在所有3个服务器上分配用户负载可能会更好

这样,每台服务器的开放用户连接就更少了。而且查询引擎仍然不会占用资源(如果只是web请求),因此不会对用户性能产生负面影响

给你一些想法。在不了解更多应用程序的情况下,不可能完全确定

其他评论

正如在评论中提到的,您应该研究一个合适的负载平衡器,一个好的硬件负载平衡器是第一个建议。你在哪里运行你的服务器?如果它们位于AmazonEC2、Rackspace等云数据中心中,那么负载平衡服务对您来说很容易获得

您还可以使用软件负载平衡器。Apache甚至提供了以下功能:


即使使用当前的配置,也可以将Apache放在其中一台服务器前面,然后对其进行调优,以便使用Apache的服务器(执行负载平衡)获得较低百分比的流量,以抵消Apache服务器的费用。在这种情况下,您没有硬件更改。虽然您有一个明显的单点故障,这与您现在的情况没有什么不同,但适当的负载平衡器通常可以缓解您当前架构中的单点故障问题。

servers 2&3从internet获取信息并将其返回到Server1,这意味着Server2&3阻塞了Server1,别无选择round@ajreal这实际上是一项移动服务,当用户向某个号码发送短信时,它会点击我们的ip ie服务器1。我不能设置每个短信击中不同的ip。所以我必须以某种方式将负载从server1@Ashwin-当然可以,市场上有很多可用的负载平衡器硬件,您只需将虚拟IP配置为公共IP,当您的负载平衡器硬件收到请求时,它可以按照服务器1的请求将我的评论添加到答案中。你能指导我配置这些吗