超高速发展的公司是孤独的。要学习的东西是很多,但是能用来学习的时间却几乎没有。不过放心,如果采纳我们的建议,你将会有许多朋友,它们就是需要耗电、发热、能够排风、执行赚钱任务的计算机。在超高速发展的世界中,我们相信,拥有许多便宜的“金鱼”比拥有几匹昂贵的“纯种马”更好。
大学微积分课本中,最让我欣赏的一句话是“无庸置疑,即使是不经意的观察者也能发现<在此插人一句完全不知所云的话>”。这句话让我印象深刻,主要因为当时所讨论的内容对我来说既不直观也不显而易见。也许,采用更多较小的服务器与采用较少的大型服务器相比,好处并不是显而易见的。事实上,采用更多的计算机,意味着耗电更多,占地更多,冷却系统更多。之所以我说采用更多较小服务器比采用较少大型服务器好,原因有二。
你的设备供应商,在提成机制刺激下,一定会向你兜售利润最高的产品。绝对如此,他们虽然跟你谈赚钱,但只有把利润率最高的设备卖给你,他们才会赚最多的钱。而这种设备就是处理器数量最多的服务器。为什么会这样?许多公司依赖于更快更大的硬件来完成必要的工作,却不愿意对基础设施扩展进行投资。同样地,设备制造商则用更高的价格来控制这些公司,从而实现高利润。但这个方法的向题在于,更快更大的机器并不真的比具有等量处理器的多个小系统处理的工作量多。对于这些大型服务器来说,CPU效率低这个问题依然没有解决。随着CPU的增加,每个CPU所能做的工作都比它在一个CPU系统(无论核的数量是多少)中所能做的少一些。造成这种问问题的原因有很多,包括调度多个处理器的调度算法效率低、与内存总线的访问速度冲突、结构冲突、数据冲突,等等。
仔细想想我们刚才所讲的。你在CPU上花的钱多了,但是每个CPU所能做的却少了。这样就吃了两次亏。
面对前面这些情况,供应商可能会通过第一轮比较常见的质疑。聪明的人会迅速地进一步说明:你的整体成本会下降,因为少量大设备比大量小设备消耗的总电能更少。事实上,他们可能会说,你可以与他们的合作伙伴共享(或者虚拟化)使用系统,这样就能得到小系统、耗电少的好处了。这就给我们带来了第二个问题,必须好好计算一下了。事实上,大型系统的耗电量可能更少,从而节约成本。由于电力成本增加,系统成本降低,所以系统必然存在一个“合适的大小”,能够达到电力、系统成本以及计算能力的最优组合。但是,供应商可不是提供这些信息的最佳人选。你应该自己好好计算一下。计算的结果通常不会让你购买最大的系统。要弄清楚如何对待供应商的论证,可以把它们分解开来看看。
这道算术题很简单。让我们用一个独立第三方提供的系统利用率的标准评测程序来看看电力成本和单位电力消耗。我们发现,适合我们的系统仍然是经济型系统(而并不是供应商所认定的为高端系统),且能够在电力消耗与空间需求最小的情况下,计算能力实现最大化。几乎所有案例中,当考虑到总体成本时,购置成本通常都会降低。
就虚拟化而言,要记住:没有免费的软件。利用虚拟化系统(旧的术语叫做域或者分区)的原因有很多。但把一台服务器虚拟化成四个分区,不可能比购买四台与每个分区大小相等的服务器得到更大的系统处理能力和生产量。记住,运行虚拟化软件必须占用CPU周期,这就需要从某处得到这些周期。再说一次,利用虚拟化系统的原因有很多,但是一个大型分区系统的系统容量比多个与分区大小相等的小型系统的容量多是错误的,也并非虚拟化的理由。
与采用昂贵的系统相比,我们要采用经济型系统的原因还有什么呢?因为我们打算进行密集的扩展,所以相对于扩展频率来说,这样更经济。采购经济型系统更容易获批。虽然可能有多台小服务器,但是放弃其中几台,空闲时才解决它们的问题,要比尽快解决昂贵系统的问题容易得多。尽管这个原因不那么直观,但是采用经济型系统(金鱼)的环境与采用昂贵系统(纯种马)的环境相比,我们成功地用更少的人员管理了更多的系统。由于每个单元中的组件更少(如CPU),我们用于维护这种系统的费用更少,可以负担得起更多的冗余,失败也更少。最后,我们要解释的是为什么称这种系统为“金鱼”。在扩展时,这些系统是非常廉价的。如果它们“死了”,那么可能就会被丢到一边,而不是花时间把它们修好。而另一方面,“纯种马”系统意味着相当大的投入,需要花费时间对其进行网站设计维护和修复。总之,我们倾向于有更多小朋友,而不是几个大朋友。
本文地址://www.qlpinke.com//article/3460.html