如何避免瓶颈性能?

时间:2013-05-17 08:13:02

标签: performance distributed-system

如果分布式系统在资源数量和用户数量显着增加时仍然有效,则可以将其描述为可扩展的。但是,这些系统有时会遇到性能瓶颈。如何避免这些?

2 个答案:

答案 0 :(得分:2)

问题非常广泛,完全取决于系统正在做什么。

以下是我在系统中看到的一些减少瓶颈的事情。

  • 使用缓存,减少网络和磁盘瓶颈。但请记住,在某些情况下,知道何时从缓存驱逐中驱逐可能是一个难题。
  • 使用消息队列解耦系统中的组件。这样,您可以向需要它的系统的特定部分添加更多硬件。
  • 延迟计算(如果可能)(通常使用消息队列)。这会在高处理时间内从系统中散发出热量。
  • 当然,尽可能为并行处理设计系统。一个进行处理的主机不可扩展。注意:大多数关系数据库属于单主机存储桶,这就是 NoSQL 突然变得流行的原因;但并不总是合适的(理论上)。
  • 如果可能,请使用最终一致性。强一致性很难扩展。

有些人是CQRS和DDD的支持者。虽然我从未见过或设计过“CQRS系统”或“DDD系统”,但这些确实影响了我设计系统的方式。

上述各点有很多重叠;有些技术可能会使用其他一些技术。

但是,经验(您自己和他人)最终会向您介绍可扩展系统。通过阅读谷歌,亚马逊,推特,脸书等设计,我不断了解最新动态。另一个好的起点是high-scalability blog

答案 1 :(得分:1)

为了建立在abover帖子中讨论的一点,我想补充一点,分布式系统需要的是分布式缓存,因此当你打算扩展应用程序时,分布式缓存就像一个“弹性” “数据结构意味着您可以在不影响性能的情况下增加缓存的存储容量,同时为您提供可供多个应用程序访问的可靠平台。

一个distributed caching solution is NCache。看看吧!