当前位置: 首页 > news >正文

《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.2.1 CPU基础设施基准...

本节书摘来华章计算机《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一书中的第1章 ,第1.2.1节,[美] 克里斯托弗·库塞克(Christopher Kusek) 著 吕南德特·施皮斯(Rynardt Spies)姚海鹏 刘韵洁 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2.1 CPU基础设施基准

从基础架构的角度来看,通常会根据服务器能够支持的内核和CPU的数量,以及能够处理的内存插槽数量来选择服务器。根据这些就能决定VMware vSphere集群可以支持vCPU的最大数量,以及能够提供给虚拟机的最大内存。从而能够确定虚拟机能够支持的最高配置。
例如,如果你要将一个旧设备再利用,它每台服务器最大可用四核,并且RAM最大为16 GB。可以确定,它将无法提供一个具有32 vCPU、64 GB RAM的单一虚拟机。所以,可见你的虚拟配置达不到最大vSphere主机的可用资源—记住,vSphere以及它为虚拟机保留的开销也需要可用的资源。
一旦确定能够支持的最高配置,你很快就会认识到可接受的最低配置通常会低于先前认为的界限。在建立应用程序基准的过程中,你还会发现,“制造商建议的最佳实践”的最好情况是保守的,而最坏情况则是完全欺骗!
又如,多少次你听到过一个应用程序因为太忙而需要一定量的资源,只为了让你发现那些资源没有得到充分利用?
那么,这是否意味着当我们为应用程序分配vCPU时一定存在一个最好的配置?让我们研究vCPU的参数究竟意味着什么特征。从图1-1可以看到,CPU的主要相关参数是CPU的数量、CPU处理能力、CPU共享、CPU限制、CPU保留。不考虑设备,基础架构可以给主机分配CPU数量以及指定分享和限制。在大多数情况下,这些你完全可以通过关注分配给主机的CPU的数量和工作量而获得。
分析CPU使用、争用和工作负载有助于建立应用程序基准。需要指出的重要一点是,实际上,一个被监控的CPU可能会出现尖峰,所以最好使用监测工具(如esxtop、vCenter Operations Manager或内置在vCenter中的性能工具)来不断收集数据。我们已经看到许多用户报告说,他们的应用是低于分配标准的,因为他们在Windows任务管理器中看到了CPU的尖峰。其实,CPU尖峰预计是肯定会发生的。
现在,监控CPU的使用,最重要的就是不做任何操作,不要调整、修改分配好的共享或者内核的数量。就像我们点了一份菜单然后等待,耐心很重要,这样才能确定应用程序的使用基准。
作者Christopher Kusek分享了一个小故事,关于他如何测试每一步来建立一个应用的基准。正如在我们的设想中认为的,一个工程师或者架构师是极度保守的,出于同样的原因,我们也希望只使用所需要的资源。他有一个非常密集型的应用,有一个监控工具从他的100多个vCenter服务器中收集数据,还有上千个ESXi主机操作这些数据中心。因为非常庞大,他认为原始分配的两个vCPU和8GB的内存无法良好运行,所以只要有一个IT工具能够承担他认为合适的中断,他马上就将vCPU的数量增加至8个,内存增加至16GB。

image


这样就可以看到经过一段时间(建立基准)的运行,在不影响应用程序性能下,系统能达到的峰值。他选择利用历史数据的收集和报告,通过vCenter操作管理和vCenter的性能标签来收集数据。VMware vSphere特别好的一点是可以持续计算出它所需要的资源。经过一小段时间后,可以确定这个系统最多使用5个vCPU和12GB内存便可以高效运行。
这时Christopher将系统下调至这个需求,并且基于他的基准,他不仅知道了运行的工作量,同时知道了预期峰值。这样,他就知道了运行这个特定的应用程序所需的资源,不会因为配置不达标而影响性能,也不会因为超标而浪费资源。
你会发现,对你的虚拟环境来说,vCPU的分配是最重要的方面之一,尤其是当考虑到第4章中的CPU调度程序时。其中在聚集频率方面不能节省,同时在分配逻辑vCPU数量方面不能浪费(同时调度复杂度>1或2 vCPU=+++%RDY%),因为CPU确实是一个有限的资产,如果没有性能指示则不能“被共享”。

相关文章:

  • “智能云”战略新品震撼发布,开发者如何快速上手?
  • 对于startActivity的使用改进
  • [设计模式][c++]状态切换模式
  • POJ2117-Electricity
  • HTML/CSS 知识点
  • java并发编程之:线程共享数据的方式
  • 《2017年全球数据库安全市场趋势》
  • 聊聊运维(1)证明你是坏运维的七个迹象,不要做CPR运维
  • 怎样制作C#安装程序
  • Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
  • [UWP]了解模板化控件(6):使用附加属性
  • 新公司,新挑战
  • linux: 进程管理常用指令
  • RabbitMQ6种常用业务场景分析
  • 面试题——敲代码推断操作系统位数
  • 【css3】浏览器内核及其兼容性
  • bootstrap创建登录注册页面
  • IndexedDB
  • PAT A1050
  • PHP 小技巧
  • python_bomb----数据类型总结
  • scala基础语法(二)
  • Windows Containers 大冒险: 容器网络
  • 机器学习中为什么要做归一化normalization
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 聊聊flink的TableFactory
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 译自由幺半群
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 关于Android全面屏虚拟导航栏的适配总结
  • 如何用纯 CSS 创作一个货车 loader
  • #QT项目实战(天气预报)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)Linq学习笔记
  • (转)Sql Server 保留几位小数的两种做法
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .Net Web项目创建比较不错的参考文章
  • .net 简单实现MD5
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • /etc/fstab 只读无法修改的解决办法
  • @property括号内属性讲解
  • [acm算法学习] 后缀数组SA
  • [Android] Upload package to device fails #2720
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [CentOs7]搭建ftp服务器(2)——添加用户
  • [CISCN 2019华东南]Web11
  • [Docker]十二.Docker consul集群搭建、微服务部署,Consul集群+Swarm集群部署微服务实战