理论上,假设我在负载均衡器下运行了3节点LXD集群。流量开始增加,我需要通过向群集中添加另一个节点来水平扩展。此时,我在LB下有一个4节点集群。
这种方法在哪些方面有益?我试图了解它是否减少了包含节点的整个裸金属的负载,或者只是允许更多的处理请求。如果允许处理更多的请求,我想让我测量每个容器的平均负载吗?
答案 0 :(得分:1)
只要有足够的CPU周期和足够的网络带宽,添加新节点几乎总是允许同时处理更多请求。在某些情况下,这会降低每个请求的响应速度。
如果CPU负载很高,那么添加另一个节点(在同一个盒子上)将减少吞吐量(延长响应时间 - 因为你要求cpu做更多可以同时完成的工作)。如果由于阻塞IO导致负载很高,那么在盒子上添加另一个节点不应该显着影响每个请求的处理时间。
在阻塞IO情况下,您可以添加新节点,直到CPU达到其阈值级别 - 您永远不希望最大化CPU,您希望阈值为75%,以允许负载变化。
但是,你现在不应该运行阻止io的代码 - 你应该在Node.js或Go中编写所有东西;)
答案 1 :(得分:1)
你真的需要更具体地了解你的设置,这可能不是最好的论坛。如果您的应用程序是多线程的并且您使用的是单个计算机,那么理论上,如果您在节点上使用资源限制,则除了能够隔离特别“贪婪”的客户端之外,您无法获得更多节点。即使它是单线程的(例如,Node.js)并且您使用集群或子进程,您仍然可以最大化CPU。
具有单个进程的稀疏节点的一个优点是您可以定制适合每个应用程序的资源限制。在某个时刻,您将需要能够扩展到多个主机,特别是如果您需要高可用性。