你能帮我规划容量吗?

vor*_*aq7 139 capacity-planning

这是一个关于容量规划规范问题

有关的:

我有一个关于容量规划的问题。服务器故障社区能否请帮助解决以下问题:


  • 我需要什么样的服务器来处理一定数量的用户?
  • 具有一定规格的服务器可以处理多少用户?
  • 一些服务器配置是足够快的我的使用情况
  • 我正在建立一个社交网站:我需要什么样的硬件?
  • 某些项目需要多少带宽?
  • 某些应用程序中,一定数量的用户将使用多少带宽?

vor*_*aq7 103

服务器故障社区通​​常无法帮助您进行容量规划 - 我们可以提供的最佳答案是“在硬件上对您将在生产中使用的代码进行基准测试,确定任何瓶颈,然后确定您的工作负载有多少当前硬件可以处理,和/或处理目标工作负载需要多少硬件马力”


容量规划中有许多因素在起作用,我们无法在问答网站上充分评估这些因素:

  • 您的特定代码/软件的要求
  • 外部资源(数据库、其他软件/站点/服务器)
  • 您的工作量(峰值、平均、排队)
  • 绩效的商业价值(成本/收益分析)
  • 用户的性能期望
  • 您可能拥有的任何服务级别协议/合同义务

对这些因素和其他因素进行适当的分析超出了简单问答网站的范围:它们需要有关您的环境和要求的详细知识,只有您的团队(或获得足够报酬的顾问)才能有效地收集这些知识。


一些容量规划公理

  1. RAM 很便宜
    如果您希望您的应用程序使用大量 RAM,您应该尽可能多地放入您负担得起/适合的 RAM。
  2. 磁盘很便宜
    如果您希望使用大量磁盘,则应该购买大驱动器 - 很多。
    SAN/NAS 存储不那么便宜,并且通常也应该指定大而不是小以避免以后进行昂贵的升级。
  3. 工作负载随时间增长
    假设您的资源需求会增加。
    请记住,增加可能不是对称的(CPU 和 RAM 可能比磁盘上升得更快),也可能不是线性的。
  4. 电费昂贵
    尽管 RAM 和磁盘的价格大幅下降,但电费却在稳步上升。所有这些额外的磁盘和 RAM,更不用说 CPU 功率,都会增加您的电费(或您支付给供应商的电费)。相应地计划。

  • 我要补充一点:磁盘 _capacity_ 很便宜。磁盘 _performance_ 变得昂贵。尤其是当我们看到磁盘大小在 10 年里不断增长时,但物理定律并没有改变。我使用的经验法则(截至今天;2014 年 6 月)是为了获得最佳性能:SATA 上每个轴 75 IOP,FC 上每个轴 200 IOP,每个 SSD 1500 IOP。大 SATA 驱动器每 GB 的 IO 比率确实很差。 (32认同)
  • 你应该完全放弃它并使用部分集成! (2认同)
  • 到 2019 年中期,没有人应该再购买主轴驱动器。 (2认同)

sys*_*138 47

虚拟机计数规划

在确定应该在单个主机上计划多少个 VM 时,实际上并没有很好的经验法则。其实只有一种,而且只有一种好:

虚拟机计数通常受 RAM 限制,除非它们不受限制。

这不是很有帮助。如果这些 VM 将运行低 CPU 应用程序,那么您的限制器将基于 RAM。每个 VM 平台都有自己超额订阅 RAM 的能力,因此它不像 TOTAL_RAM / Per-VM-RAM = MachineCount 那样容易,但这个数字是一个很好的计划项目。

但是,如果您的虚拟机除了执行低 CPU 数据包传送之外还执行其他操作呢?


虚拟机数量受主机可用的七个离散资源的限制:

  • 虚拟机管理程序VMware、Xen、HyperV、KVM 等等。每个都有自己的计数影响功能。有些非常擅长内存页面重复数据删除,有些则不然。有些不允许超额订阅 CPU 容量,有些则允许。
  • CPU 核心速度这限制了 VM 能够运行的最大单线程性能。一个 1.8 GHz CPU 的 36 核可能是主机上 64.8 GHz 的 CPU,但没有任何单线程的运行速度会超过 1.8 GHz。
  • CPU 核心数这与核心速度一起描述了您可以体验的最大 CPU 性能的上限。
  • 系统 RAM如上所述,这会限制您可以运行的 VM 数量。某些虚拟机管理程序在内存页面重复数据删除等方面优于其他虚拟机管理程序,因此如果您运行 100 个相同的虚拟机,与运行 100 个完全不同的虚拟机相比,您可以在此类重复数据删除系统上打包更多的虚拟机。
  • 磁盘大小每个操作系统映像占用一定的空间。您需要足够的空间来存储所有内容。因此,磁盘大小对您可以托管的虚拟机数量设置了上限。
  • I/O 带宽VM 底层的磁盘具有每秒可以处理的 I/O 数量的最大值。如果投入过多,系统将陷入等待 I/O 完成的状态。这对可以运行的消耗 I/O 的 VM 的数量设置了上限。
  • 网络带宽对于使用网络的 VM,可用的网络带宽将限制在给定主机上可以运行的此类 VM 的数量。

所有这些都可能是您绊倒的事情,这完全取决于您对 VM 的处理方式。要记住的一些事情:

  • 没有通用系统这样的东西。
  • 没有通用的 web-server 之类的东西,因为应用程序代码可以从几乎不需要动针的CDN式服务运行到像视频转码这样的大深度破解东西。
  • 没有通用数据库服务器这样的东西。这些可以从仅用于会话状态跟踪的微型系统运行到非常大的系统。

要确定可以将多少个 VM 打包到一个主机系统中,您需要知道您的系统如何运行以及它们需要什么才能正常运行。一旦你知道这一点,你就可以进行计数计划。更好的是,弄清楚制作主机系统需要多强大!

  • 我在 VM 实现中最常看到的东西是磁盘 I/O。大多数人都了解磁盘空间、CPU 速度和内存。他们忘记了磁盘性能。 (3认同)

Dyl*_*tin 9

确保你问的是正确的问题。

  • 电脑很便宜
  • 未来的需求很难预测
  • 计划如何扩展,而不是提前购买什么

如果你不知道你需要什么,那意味着你不需要太多。如果你有一个热门网站,你可能还有一个运营团队,他们知道你的应用需要多少内存、磁盘、io、网络等。如果您正处于做梦阶段,您应该从您的桌面开始,然后逐步向上。

确保你知道当事情变大时你将如何扩展。您可以在负载均衡器后面添加更多服务器吗?你可以分片redis服务器吗?

此外,拥有自己的数据中心也很糟糕。数据中心(即使它只是一台计算机)会分散您的实际目的。你不能只是买了一台电脑,打开它,然后走开。您需要空调、空气过滤、可靠的电力、可靠的互联网、备份、备件、增长的物理空间、增长的电力容量、不会被绊倒的电源线以及无数其他令人头疼的问题。