1

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

记忆

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

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

中央处理器

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

任何事情都可能出错,或者只有进程可能会因为 CPU 周期不可用而变慢,并且在一段时间内它们会完成。此外,任何新进程都将等待 CPU 周期的可用性。

会出什么问题吗?

基本上我想了解场景是什么以及应该考虑扩大规模(垂直或水平)的价值是什么

在在线答案或阅读指针中,任何事情都会受到赞赏。

4

2 回答 2

1

衡量性能比从资源使用情况预测要容易得多,因此使用 jmeter 或 wget 设置一个小探针,大约每小时测试一次您的系统,以检测减速。

在准备进行常规探测时,请在单个目标系统上进行测试,并找出需要多少用户才能使其减速。通过添加实例,这就是您应该在生产中避免的数量。

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

--戴夫

于 2012-10-28T13:57:00.717 回答
0

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

  • 一些应用程序可以在 100% 的 CPU 使用率下正常运行(只要这台机器上没有其他作业),并且一些应用程序可能需要在使用 80% 的阈值时进行扩展。记忆也是如此。
  • 想想你是否有一些必须在特定时间完成的关键任务。如果是这样,您必须考虑获得足够的 CPU 和/或内存以供他们完成工作。
  • 全程观察和测量您的系统数据。我建议有一个像munin这样的系统来显示你的性能数据(及其变化)随着时间的推移。有趣的测量点是系统负载、cpu 使用率、内存消耗、i/o 服务时间等。
  • 尝试了解是什么限制了您的应用程序。例如,如果您有很多 CPU 密集型任务,那么 CPU 就是您的极限。如果您有很多 I/O 要做,请关注 I/O 统计信息、延迟时间等。

总而言之:扩展的需求取决于您的应用程序。在系统资源使用方面更好地了解它。如果您设置了监控系统,则可以随着时间的推移观察系统性能。

一本好书是“容量规划的艺术”。另外,如果您搜索一下“容量规划”,您会发现更多要点。

于 2012-10-27T11:09:43.720 回答