有关的:
我对容量规划有疑问。Server Fault 社区能否帮助解决以下问题:
- 我需要处理什么样的服务器一些数字用户数量?
- 一台服务器最多可以容纳多少个用户一些规格处理?
- 将要一些服务器配置足够快我的用例?
- 我正在建立一个社交网站:我需要什么样的硬件?
- 我需要多少带宽一些项目?
- 需要多少带宽一些数字用户使用一些应用?
答案1
Server Fault 社区通常无法帮助您进行容量规划 - 我们能提供的最佳答案是“在与生产中使用的硬件类似的硬件上对您的代码进行基准测试,找出任何瓶颈,然后确定当前硬件可以处理多少工作负载,和/或处理目标工作负载需要多少硬件马力”。
容量规划中有许多因素在起作用,我们无法在问答网站上充分评估这些因素:
- 您的特定代码/软件的要求
- 外部资源(数据库、其他软件/网站/服务器)
- 您的工作量(峰值、平均、排队)
- 绩效的商业价值(成本/收益分析)
- 用户的性能期望
- 您可能拥有的任何服务水平协议/合同义务
对这些因素和其他因素进行适当的分析超出了简单的问答网站的范围:他们需要有关您的环境和要求的详细知识,只有您的团队(或获得足够报酬的顾问)才能有效地收集这些知识。
一些容量规划公理
- RAM 很便宜
如果您预计您的应用程序将使用大量 RAM,那么您应该放入尽可能多的 RAM。 - 磁盘很便宜
如果您预计会使用大量磁盘,则应购买大容量驱动器 - 大量购买。SAN
/NAS 存储不太便宜,并且通常应指定大容量而不是小容量,以避免以后昂贵的升级。 - 工作量随时间增长
假设您的资源需求会增加。
请记住,这种增长可能不对称(CPU 和 RAM 的增长速度可能比磁盘快),也可能不是线性的。 - 电费很贵
尽管 RAM 和磁盘的价格已大幅下降,但电力成本却稳步上升。所有这些额外的磁盘和 RAM,更不用说 CPU 功率,都会增加您的电费(或您向提供商支付的费用)。请相应地制定计划。
答案2
虚拟机数量规划
在确定单个主机上应该计划安装多少台虚拟机时,实际上并没有很好的经验法则。事实上,只有一条,而且还算不错:
虚拟机数量通常受 RAM 限制,除非情况不受限制。
这没什么用。如果这些虚拟机要运行低 CPU 应用程序,那么您的限制器将基于 RAM。每个虚拟机平台都有自己的超额认购 RAM 的能力,因此它并不像 TOTAL_RAM / Per-VM-RAM = MachineCount 那么简单,但这个数字是一个很好的规划项目。
但是如果您的虚拟机除了低 CPU 数据包传输之外还执行其他操作怎么办?
虚拟机数量受主机可用的七种离散资源的限制:
- 虚拟机管理程序VMware、Xen、HyperV、KVM 等等。每个都有自己的计数影响功能。有些非常擅长内存页面重复数据删除,有些则不然。有些不允许超额订阅 CPU 容量,有些则允许。
- CPU 核心速度这限制了虚拟机能够运行的最大单线程性能。1.8 GHz CPU 的 36 个核心在主机上可能是 64.8 GHz 的 CPU,但没有单个线程的运行速度会超过 1.8 GHz。
- CPU 核心数它与核心速度一起描述了您可以体验的最大 CPU 性能上限。
- 系统 RAM如上所述,这限制了您可以运行的虚拟机数量。某些虚拟机管理程序在内存页面重复数据删除等方面比其他虚拟机管理程序更好,因此如果您运行 100 个相同的虚拟机,那么您可以在此类重复数据删除系统上打包更多此类虚拟机,而运行 100 个完全不同的虚拟机则不行。
- 磁盘大小每个操作系统映像都会占用一定量的空间。您需要足够的空间来存储所有内容。因此,磁盘大小限制了您可以托管的虚拟机数量。
- 输入/输出带宽虚拟机底层的磁盘每秒可以处理的 I/O 数量有上限。如果向其投入过多,系统将因等待 I/O 完成而陷入停滞。这为您可以运行的消耗 I/O 的虚拟机数量设置了上限。
- 网络带宽对于使用网络的虚拟机,可用的网络带宽将限制在给定主机上可运行的虚拟机数量。
所有这些都可能是您遇到的问题,这完全取决于您对虚拟机的操作。需要记住以下几点:
- 并不存在所谓通用的系统。
- 不存在通用的 Web 服务器,因为应用程序代码可以从几乎不动的针头运行内容分发网络 (CDN)式服务,以及视频转码等深度破解的大项目。
- 不存在通用数据库服务器. 这些可以从仅用于会话状态跟踪的微型系统运行到非常大的系统。
要确定可以将多少个虚拟机装入主机系统,您需要了解系统如何运行以及正常运行所需的条件。了解这些条件后,您就可以进行计数规划。更好的是,确定您需要将主机系统配置到多强大的程度!
答案3
确保你问的是正确的问题。
- 电脑很便宜
- 未来的需求很难预测
- 规划如何扩展,而不是提前计划购买什么
如果你不知道自己需要什么,那就意味着你不需要太多。如果你有一个热门网站,你可能还有一个运营团队,他们知道你的应用需要多少内存、磁盘、io、网络等。如果你处于梦想阶段,你应该从桌面开始,然后逐步向上。
确保你对规模变大时如何扩展有一定的了解。你能在负载均衡器后面添加更多服务器吗?你能对 redis 服务器进行分片吗?
此外,拥有自己的数据中心很糟糕。数据中心(即使只有一台计算机)会分散您的注意力,使您无法专注于实际目的。您不能只购买一台计算机,打开它,然后走开。您需要空调、空气过滤、可靠的电源、可靠的互联网、备份、备件、可增长的物理空间、可增长的电力容量、不会被绊倒的电源线,以及无数其他令人头疼的问题。
答案4
从估算“每秒查询次数”开始。100 即容易处理。1000可能是一个问题。在一台机器上生产 100 万几乎是不可能的。
“用户数量”——数千名不做太多事情的用户比一个用户预测明天的天气所造成的麻烦要小。
“带宽”——需要将多少字节传输到/传输出服务器?磁盘上有多少数据?
“社交网络”——建立原型、获得一千名用户并收集指标。然后让我们讨论一下你应该如何改写架构和重新设计服务器拓扑。
“分片”、“缓存”等。当“用户”达到一百万时,您可能需要将数据和活动分配到一百台服务器上。如果没有更多细节,我们就无法讨论如何进行拆分。此外,在发现将要遇到的障碍之前,设计规模还为时过早。