本节书摘来华章计算机《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一书中的第1章 ,第1.1节,[美] 克里斯托弗·库塞克(Christopher Kusek) 著 吕南德特·施皮斯(Rynardt Spies)姚海鹏 刘韵洁 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.1.1 确定参数
当我们为了性能设计环境时,第一个挑战就是确定满足需求的环境参数,这通常指的是性能的服务水平协议(Service-Level Agreement,SLA),但还可能包括一些其他特征。如果定义不清或缺少SLA,通常将会给虚拟机提供最大可用资源,这可能会导致资源浪费,并最终影响你的性能以及满足任何既定SLA的能力。
例如,在虚拟机中部署SQL Server时,典型的行为是分配两个或4个虚拟CPU(vCPU);4、8或16 GB的RAM;磁盘阵列(RAID)上足够的磁盘空间;多个1Gb网卡或10 Gb接口。这是可以接受的部署和配置物理机的常规做法。不考虑应用程序的配置文件,这个典型的配置将在vSphere集群中传播,成为数据库管理员(DBA)建立的基准。
我们不能忽视那些达到或超越使用配置文件的应用程序,但当我们设计应用程序配置文件时,那些不应该成为事实上的标准。根据最新的VMware Capacity Planner对70多万台客户生产环境中的服务器的分析,SQL Server通常运行在两个物理内核上,平均CPU利用率小于6%(85%的服务器利用率低于10%,95%的服务器利用率低于30%)。一般SQL Server机器安装了3.1 GB的内存,但只使用了60%,使用平均每秒20的I/O操作或者IOPS(超过95%的服务器低于100 IOPS),而在网络中的平均网络使用率是每秒400KB。
简单来说,你可以轻松完成多数SQL Server的安装,使用1个vCPU、2 GB的RAM,以及在SATA磁盘上运行。这并不是说你的所有服务器都能符合这些标准,但其中大部分是可以的。当你开始设定标准时,为大多数应用程序的配置文件设置“默认模板”是十分重要的。
继续“准备工作”的主题,已有的一些经验教训可以帮助你步入正轨,来完成并超越你的性能需求,而不用花费几个月的时间进行测试。当处理特定的应用程序时,要参照厂商的支持政策、建议和最佳实践。“当然,”你在想,“这本书不就是为了给我建议和最佳实践吗?”答案既是又不是。当出现更新、新版本、公告、硬件提升等时,供应商的支持和最佳实践往往会有所改变。因此,对于AMD Opteron处理器的最佳做法和建议可能与最新的Inter Xeon处理器的有所不同。当你进行架构设计时,一定要以这些原则为指导,以确保你提出正确的问题,找到正确的路径,并运用正确的规则。当你掌握这些知识时,就可以轻松地处理一个CPU或一个网卡的最新更新。