本节书摘来华章计算机《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一书中的第2章 ,第2.4.1节,[美] 克里斯托弗·库塞克(Christopher Kusek) 著 吕南德特·施皮斯(Rynardt Spies)姚海鹏 刘韵洁 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.4.1 CPU/内存
生成CPU和内存负载对于测试vSphere功能或者观察负载下的应用性能十分有用。尽管有大量工具可以生成这个负载,但是使用可以同时生成这两种负载的单个工具可以简化你的测试。
Prime95
仿真CPU和内存负载最老的工具之一是Prime95。这个工具最初是为了帮助寻找质数(现在仍出于这个目的),但它同时也是一个有用的负载仿真工具。
当你第一次运行Prime95时,会提示你用特定功能来运行一个压力测试。例如,你可以选择给CPU但不给RAM施加压力,或者你可以选择给两者都施加压力。图2-13显示了压力测试的选项,选择“Blend(tests some of everything, lots of RAM tested)”作为测试参数。这个测试会同时测试CPU以及内存。
注意图2-13中的Number of torture test threads to run字段,它表明了进行压力测试的CPU数量。如果你有4个vCPU而只选择两个线程,Prime95将只消耗CPU负载50%的性能。为了测试所有vCPU,要确保整个值与配置的vCPU的数量相符。
有多个原因使你可能想要对一个或多个虚拟机的CPU和内存进行压力测试。以下列表提供了一些常见的例子,但是根据个人需求可能还有许多其他原因:
如果对你的ESXi主机物理硬件进行压力测试,那么在多个虚拟机上同时使用Prime95是一个好方法。如果配置虚拟机使用所有可用的CPU和内存资源,那么使用Prime95可以为物理CPU和内存加压,并有可能在将服务器放入生产环境之前发现错误的硬件。这一般称为“burn-in”测试。
在环境中引入模拟CPU和内存负载可以确定负载下的虚拟机性能。比如,如果一个应用的基准性能标准(如每秒的数据库请求)低于正常情况,Prime95可以引入负载并随后引起CPU或者内存争用。这样你就可以看到应用在这种负载下的性能,并且知道如果在生产环境中出现这种情景,应用将会有怎样的性能。
对于测试像vSphere DRS这样的功能,生成CPU和内存负载是一个非常好的方式。通过模拟负载来确保DRS可以自动迁移虚拟机来平衡负载。还可以用它来确认达到了CPU和内存的预留。可能最重要的是,如果虚拟机接收到了符合配置限制、预留或共享资质的资源,你可以进行观察。当使用资源池给虚拟机分配CPU和内存资源时,这是尤为重要的。为资源池分配资源的更多细节见第4章。
存在多种原因使你想要在环境中生成模拟CPU和内存负载。不管是什么原因,Prime95都是一个用来仿真负载的好工具。
要学习有关Prime95的更多信息以及下载副本,请访问www.mersenne.org/freesoft。