容量规划 - 知道何时扩展?

时间:2012-10-27 10:28:03

标签: load scaling capacity-planning

我想知道我的系统何时处于负载状态(内存和CPU),我应该何时计划扩展。

内存

我正在使用ec2-instance。我有多个进程在运行。它们一直消耗80-90%的内存。我应该担心还是应该感到高兴,因为我正在利用最多的可用资源。

什么应该是内存消耗,在什么情况下我应该担心缩放?

CPU

我有另一个运行其他进程的ec2-instance。大多数情况下,系统CPU利用率仅为18-20%,但在某些过程中,它会跃升至90-100%。

可能出现任何问题,或者只是由于cpu周期不可用而导致进程可能变慢,并且在某些时候它们将完成。此外,任何新进程都将等待cpu周期的可用性。

可以出问题吗?

基本上我想了解什么是场景以及在考虑放大(垂直或水平)时的值是什么

在线阅读或指示阅读,任何事情都值得赞赏。

2 个答案:

答案 0 :(得分:1)

测量性能比从资源使用中预测要容易得多,因此使用jmeter或wget设置一个小探针,并大致每小时测试一次系统,以检测速度减慢。

准备进行常规探测时,请对单个目标系统进行测试,并找出将其置于减速状态所需的用户数。通过添加实例,这就是你应该在生产中避免的数量。

然后才测量资源使用情况以查看问题的根本原因,看看是否可以为实例指定更多内容。

- 戴夫

答案 1 :(得分:0)

首先:您必须定义何时扩展自己的阈值。这主要与您在质量或稳定性指南和应用中的一些因素有关。对此几乎没有任何一般规则。以下是需要考虑的一些要点:

  • 某些应用程序可以在100%CPU使用率的情况下正常运行(只要此计算机上没有其他作业),并且某些应用程序可能需要在使用80%阈值时进行扩展。内存也是如此。
  • 想想你是否有一些必须在特定时间内完成的关键任务。如果是这样,你必须考虑为他们的工作获得足够的CPU和/或内存。
  • 在整个过程中观察并测量您的系统数据。我建议让munin之类的系统随时间显示您的效果数据(及其变化)。有趣的要点是系统负载,CPU使用率,内存消耗,I / O服务时间等。
  • 尝试了解什么限制了您的应用程序。例如,如果您有大量CPU密集型任务,则CPU是您的限制。如果你有很多I / O要做,请关注I / O统计数据,延迟时间等。

总结:缩放的需要取决于您的应用程序。在系统资源使用方面更好地了解它。如果您设置了监控系统,则可以随时查看系统性能。

好的阅读是"The Art of Capacity Planning"。此外,如果你谷歌一点关于“容量规划”,你会发现更多的点。