更多的RAM与更多的服务器

最近我被问到:“你知道什么时候决定更多的RAM还是更多的服务器? (在缩放数据挖掘应用程序的上下文中)。

我不知道,那么有什么方法可以决定呢? 我对架构和扩展(我对计算机内存的理解以及服务器所做的工作仅限于高级基础知识)知之甚less,因此对于了解这些事情的提示也非常受欢迎。

“你知道什么时候决定更多的RAM还是更多的服务器? (在缩放数据挖掘应用程序的上下文中)。

答案是,只要你给我的服务器的指标,我会告诉你哪个(或者如果它值得添加任何)。 这种types的调整不是巫术(不pipe你使用的应用程序没有仪器和没有仪器的服务器操作系统 – 那么是的,它是巫术)是科学。 测量应用程序和服务器。 简而言之,使用监控指标可以看出性能瓶颈,并添加更多的性能瓶颈。

在服务器/应用程序性能改进方面,通常会有相当多的巫术(至less是试错)。

要求的具体问题的一般规则是首先增加内存,直到不能再增加内存直到更多的内存不再提高性能。 内存相对便宜,简单地最大化内存可能会更直接。 另外,如果应用程序磁盘空间大,升级到高速驱动器或高性能控制器可能会有所不同。

然而,这个问题的一般性质使我认为没有其他改善绩效的尝试。 我同意硬件便宜,所以即使把更多的服务器放在一个问题上也很容易完成。 但是,我也要确保其他途径,尤其是操作系统和数据库的调整已经完成。 有时候对数据库,操作系统甚至是应用程序configuration的小调整都可以带来巨大的性能提升。

在这个网站上search你的特定的操作系统,数据库和应用程序,你可能会碰到黄金。

作为一名企业架构师,我几乎每天都在处理这个问题。 垂直或水平缩放?

你有什么需求?

你需要支持更多的用户吗? 你需要提高服务的速度吗? 你需要两个吗? 你需要高可用性99.9999还是你的用户可以停机?

首先,您需要捕获当前系统的性能指标。 活动用户数量,RAM和CPU负载,光盘I / O – 找出瓶颈的位置。

基于问题的可能解决scheme:从优化当前资源开始。 如果您的应用程序是数据库驱动的,则使用查询和线索caching,索引等来优化数据库。如果您与其他应用程序共享服务器,则会探索转移到专用服务器。 (针对不太活跃/关键的应用程序进行虚拟化以释放专用资源)。

当前机器处于满负荷状态,内存和CPU负载过重,高盘I / O – 计算添加RAM的成本,您能切换到更快的光盘I / O(RAID,SATA代替ATA)吗?

如果您需要高可用性,那么您可能需要添加硬件和负载平衡。

添加硬件升级或添加新服务器更便宜吗? 哪个符合长远目标和增长?

你的IT部门是什么时候花钱的最佳时机? 你现在有资金吗?还是你想把费用转移到另一个季度? 如果资金存在问题,则立即优化或者探索从其他应用程序中释放硬件以添加临时负载平衡解决scheme。

不要害怕探索无数的解决scheme。 供应商可能希望您购买一个负载均衡的,以SAN存储为中心的解决scheme,其中一个带有iSCSI RAID 10的新服务器将以成本的10%运行。

如果您的CPU在优化后仍然负载过重,那么您需要添加/更换硬件。 如果您的磁盘I / O是瓶颈,并且无法升级存储技术,则需要更换硬件或添加networking存储/附加存储解决scheme。

捕获性能指标。 再次优化,改进和捕获指标。 保持logging性能增加/减less,所以你可以打开一个报告,logging你花了多less钱,以及多less性能增益的结果。 这些都是可能的成功案例,使pipe理员成为架构师,build筑师成为项目经理,成为上层pipe理人员。

你是分页吗? 你打算使用RAM来caching磁盘吗? 你用可用的RAM绑定CPU吗?

如果你是分页和/或可以使用RAM来caching,那么获得更多的RAM。 如果你没有遇到内存压力,那么这是另一回事。

RAM很便宜。 你应该总是首先到那里你已经有最经济的数量(例如,4GB的DIMM昂贵,所以我不打扰他们)。

然后探索横向扩展(更多的服务器)。 考虑廉价的消费者硬件与昂贵的服务器部件,但是期望出现故障,并将故障转移估计值构build到总处理能力中

基本上, 做一个谷歌 。

你使用的是什么操作系统,它支持多lessRAM以及你有多lessRAM也是要问的问题。 如果你是在32位操作系统的限制,购买更多的内存将不会有什么好处。 如果您使用Windows,则某些SKU仅限于与32位限制不完全相关的某些RAM。

有些人似乎认为添加RAM是一个很好的解决方法。 如果内存是瓶颈,这只会有所帮助。

更多的内存=更多的虚拟机。

所以我想更多的RAM =更多的服务器!