你能帮我做我的容量计划吗?

这是关于容量规划的一个典型问题

有关:

  • 您如何为网站进行负载testing和容量规划?
  • 你如何做数据库负载testing和容量规划?

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


  • 我需要什么样的服务器来处理一些用户?
  • 一些规格的服务器可以处理多less个用户?
  • 某些服务器configuration对于我的用例是否足够快?
  • 我正在build立一个社交网站:我需要什么样的硬件?
  • 某些项目需要多less带宽?
  • 一些用户在某些应用中使用多less带宽?

服务器故障社区通​​常不能帮助您进行容量规划 – 我们可以提供的最佳答案是“在硬件上对您的代码进行基准testing,类似于您在生产中使用的代码,找出任何瓶颈,然后确定您的工作量有多less目前的硬件可以处理,和/或你需要多less硬件来处理你的目标工作量“


容量规划中有许多因素,我们无法在问答站点上充分评估:

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

对这些因素和其他因素进行恰当的分析已经超出了简单问答网站的范围:它们需要详细了解您的环境和要求,只有您的团队(或者有充分补偿的顾问)才能有效地进行收集。


一些能力计划公理

  1. RAM很便宜
    如果你期望你的应用程序使用大量的RAM,那么你应该放入尽可能多的RAM。
  2. 磁盘很便宜
    如果你期望使用大量的磁盘,你应该购买大容量的驱动器 – 很多。
    SAN / NAS存储不便宜,而且通常也应该规模大而不是小,以避免以后进行昂贵的升级。
  3. 工作量随着时间而增长
    假设你的资源需求会增加。
    请记住,增加可能不对称(CPU和RAM可能比磁盘上升得更快),并且可能不是线性的。
  4. 电力很贵
    尽pipeRAM和磁盘价格大幅下降,但电力成本稳步上升。 所有这些额外的磁盘和RAM,更不用说CPU功率,将增加您的电费(或您支付给您的提供商的账单)。 计划相应。

虚拟机计数计划

说到在单个主机上计划多less个虚拟机,实际上并没有真正的经验法则。 事实上,只有一个,这只是一种好事:

虚拟机的数量通常以RAM为界,除非他们不在。

这不是非常有帮助。 如果这些虚拟机将运行低CPU应用程序,那么你的限制器将基于RAM。 每个VM平台都有自己的超额订阅内存的能力,所以不像TOTAL_RAM / Per-VM-RAM = MachineCount那么容易,但是这个数字是一个很好的规划项目。

但是如果你的虚拟机除了低CPU数据包外,还在做什么呢?


虚拟机数量受到主机可用的七个分立资源的限制:

  • 虚拟机pipe理程序 VMware,Xen,HyperV,KVM等等。 每个人都有自己的计数影响function。 有些非常擅长内存页重复数据删除,其他则不太多。 有些不允许超容量的CPU容量,有些是做的。
  • CPU核心速度这限制了VM能够运行的最大单线程性能。 1.8 GHz CPU的36个核心可能是主机上64.8 GHz的CPU,但是没有一个线程的运行速度会高于1.8 GHz。
  • CPU核心数这个核心速度描述了您可以体验的最大CPU性能的上限。
  • 系统RAM如上所述,这限制了您可以运行的虚拟机的数量。 某些虚拟机pipe理程序在内存页重复数据删除等方面比其他虚拟机pipe理程序要好得多,所以如果运行100个完全相同的虚拟机,则可以在这样的重复数据删除系统上打包更多的虚拟机,而不是运行100个完全不同的虚拟机。
  • 磁盘大小每个操作系统映像都占用一定的空间。 你需要足够的空间来存储它。 因此,磁盘大小对可容纳的虚拟机数量有一个上限。
  • I / O带宽虚拟机底层的磁盘在每秒可处理的I / O数量上具有最大值。 如果你投入太多,系统将会停止等待I / O的完成。 这对可以运行多less个I / O虚拟机提供了一个上限。
  • networking带宽对于使用networking的虚拟机,可用的networking带宽将限制您可以在给定主机上运行的虚拟机数量。

所有这些都可以成为你绊倒的东西,这一切都取决于你在虚拟机上做什么。 有些事情要记住:

  • 通用系统没有这样的东西。
  • 没有一个通用的networking服务器 ,因为应用程序代码可以从几乎没有移动的CDN风格的服务,到像video转码这样的深层次的东西。
  • 通用数据库服务器没有这样的东西 。 这些可以从用于会话状态跟踪的微小系统运行到非常大的系统。

要计算出可以装入主机系统的虚拟机数量,您需要知道系统的运行情况以及运行所需的function。 一旦你知道了,你可以做计数。 更好的是,弄清楚你需要多么强大的主机系统!

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

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

如果你不知道你需要什么,这意味着你不需要太多。 如果你有一个热门的网站,你也可能有一个操作团队,知道你的应用程序需要多lessram,磁盘,io,networking等等。 如果你处于梦想阶段,你应该从桌面开始,一路顺风。

确保你有一些想法,当事情变得更大时你将如何扩展。 您可以在负载均衡器后面添加更多的服务器吗? 你可以分割redis服务器吗?

另外,有你自己的数据中心很烂。 一个数据中心(即使只有一台电脑)是一个分心从你的实际目的。 你不能只买一台电脑,打开它,走开。 您需要空调,空气过滤,可靠的电力,可靠的互联网,备份,备件,物理空间的增长,发电能力,不会被绊倒的电力电缆以及其他十多个令人头疼的事情。