最近我们得到了一个石灰石networking公司的服务器,作为我们networking集群中的一名工作人员。
作为数据库和负载平衡器的集群背后的主要基础设施位于亚利桑那州凤凰城的菲尼克斯NAP,新员工在得克萨斯州的达拉斯。
在绕过路由之后,我们能够将这些方框之间的延迟减less到28毫秒,但问题在于,在负载平衡器,达拉斯工作人员和数据库之间,仍然会有太高的页面加载时间。
我们的负载均衡器基于服务于数据的服务器的负载平均值。 虽然我们仍然希望我们在Limestone的服务器能够作为冗余的备份操作,但是允许不需要服务的页面从服务器获得服务将会减慢速度。 所以我们要强制它的平均负载为10,这样负载均衡系统只允许其他工作人员停止工作,或者负载平衡系统负载太高,导致页面更慢加载。
我已经完成了我的研究,最好的我可以创build一个单独的加载平均文件(因为Linux真的只是文件),并从那里拉数据,但是,我们不能这样做,因为我们正在使用货架负载平衡器(Litespeed)。
“伪装”的平均负荷完全忽略了(其实是公然违反) 最小的原则 。 负载平均是一个重要的指标,它不应该是一个谎言。
做你所要求的唯一可行的方法是破解一个定制的内核,它将一个静态值(或一个sysctl可调参数值)添加到实际的负载平均值中。
这不是一个非常复杂的黑客攻击,但是你必须在内核中进行攻击的事实应该告诉你,这可能不是正确的事情。
你真正想要做什么(以及通过伪装平均值来间接要求做什么)是远程服务器的重量 ,因此,除非必须,否则不会使用它。
我不知道Litespeed是否可以做到这一点(他们的在线文档是可怕的 ),但如果不能,你应该用负载均衡器(haproxy,或者真正的任何体面的负载平衡软件)replace它。
这是负载平衡器的基本function。 任何值得使用的应该能够做到这一点。
如果您无法在Lightspeed中调整服务器,并且无法更改负载平衡解决scheme,则另一种select是让远程服务器根本不应答请求,除非主服务器全部closures。
在testing其他服务器的远程服务器上运行一个进程,并且只有在其他服务器速度慢的情况下才启动您的应用程序
这个解决scheme有很多潜在的缺陷,我不打算介绍 – 你知道你的应用程序,并可以评估这个选项对于你的特定环境有多清晰。 它的主要好处是你不会在内核中进行操作。