首页 > 其他分享 >获取设备基线性能的想法与实践

获取设备基线性能的想法与实践

时间:2023-05-30 22:33:08浏览次数:29  
标签:性能 实践 获取 虚拟机 基线 部分 CPU

获取设备基线性能的想法与实践


背景

产品的发展离不开功能实现和性能满足
功能实现还是可以通过功能测试,UAT等方式来验证。
性能是否满足有时候比较难处理。 
虽然可以通过压测。但是压测时总会有太多的变量较难控制
一般客户也不会提供一套跟生产一样的环境进行验证。
感觉此时服务器硬件性能基线的获取就比较重要了。
通过服务器处理业务需要的资源进行一定比率的缩放。
能够简单验证,产品提供的硬件后是否满足基本的需求。 

需要注意。 验证服务器资源不够的话可能比较准确。 
但是验证服务器资源充足却比较困难。 

因为正常业务的需求可以适量评估。但是异常代码下的场景无法评估。
很多低效代码再遇到瓶颈时会出现非常严重的性能劣化。 

还需要注意点的是:
虚拟机因为有超兽和漂移的影响, 以及相同宿主机算例争抢的情况。
所以建议如果对虚拟机进行基线获取,最好是可以在不同时间节点进行获取比对。
建议多次进行运算,获取均值。 

物理机器虽然理论上没有虚拟机的这些异常情况
但是电源供电,空调温度, 以及网络拥塞程度偶会影响性能表现
建议也进行明确和确定

基线获取第一部分-基本硬件信息

0. 机器基本情况:
   物理机还是虚拟机, 物理机的话机器配置厂商。 
   虚拟机的话 虚拟化平台。存储使用情况。 
1. CPU厂商,型号,主频,缓存情况。
   核心数,主频。是否超售
2. 内存大小,型号
   物理机考虑通道数,DDR几代,时序,工作频率2400or3200等
3. 硬盘大小,硬盘类型,硬盘型号
   机械硬盘还是固态硬盘,接口类型。快大小。Raid卡类型,Raid卡配置。 
4. 操作系统信息
   厂商,版本,内核版本,部分内核参数配置,TCP,IO
   文件打开数,防火墙,IO调度算法等等。 

基线获取第二部分-测试benchmark

1. CPU算例部分
   SPECCPU2006
   SPECJVM2008(CPU和内存)
   stress-NG
   pi计算
   context-switch
2. 内存部分
   lmbench
   cpu-z
3. IO部分
   fio、gfio
   diskspd
   hdtune
   dd
4. 网络部分
   netperf
   iperf
5. 综合部分
   redis-benchmark 
   sysbench(数据库)

性能基线的要求

1. CPU部分
   可以使用SPECCPU2006、2017进行验证。
   单核心能力基本上对应RT时间的比例。
   多核心能力可以部分反映系统的并发系统性能。 
   飞腾单核心跑分只有13,导致跟Intel最新CPU比较差距较大。
2. 内存部分
   内存部分一般主要是考虑带宽,时序以及频率。
   基本上CPU都无法喂饱CPU。在CPU能力成瓶颈的情况下
   内存越好,性能表现越好。 
3. IO部分(磁盘和网络)
   IOPS需要与业务常见的TPS关联起来,一般数据库的一个事务的IOPS可能差异巨大。
   从1到1000IOPS都有可能, 这一块要根据业务场景,数据量来分析
   需要注意理论上IO仅数据库部分需要考虑,应用服务器影响启动和日志较多,其他影响较小。
   网络部分所有的服务器都需要考虑。
   应用服务器既要作为跟客户度沟通,又要跟数据库沟通,其实对带宽要求很高。
   网络延迟好,带宽足够,不丢包才是良好的性能的前提。
   这时候内核参数也很重要
4. 综合部分
   redis-benchmark 很诚实的反馈机器的性能表现。如果有落盘参数,对磁盘也可以进行兼顾测试。 
   sysbench采用数据库模式测试,可以反馈部分性能瓶颈,但是意义可能不是非常大。不同业务场景差异巨大。

标签:性能,实践,获取,虚拟机,基线,部分,CPU
From: https://www.cnblogs.com/jinanxiaolaohu/p/17444690.html

相关文章

  • parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的colum
    Parquet是Twitter贡献给开源社区的一个列数据存储格式,采用和Dremel相同的文件存储算法,支持树形结构存储和基于列的访问。ClouderaImpala也将使用Parquet作为底层的存储格式。在很多大数据的应用场景下面,比如电信行业,具有一定规则的数据,字段很多,但是每次查询仅仅针对其中少数的几个......
  • 数据摄取最佳实践
    数据是为企业的许多任务关键型引擎提供动力的动力,从商业智能到预测分析; 数据科学到机器学习。为了充分发挥作用,数据与任何燃料一样,必须丰富,容易获得并且干净。数据摄取过程-准备分析数据-通常包括称为提取(从当前位置获取数据),转换(清理和规范化数据)和加载(将数据放在可以分析数......
  • Emlog Pro 自动获取文章内第一张图片作封面图
    自从更新EmlogPro程序之后,使用的是Markdown编辑器,因为此编辑器的特殊性,数据库存储的是特定语法,不是html代码,所以之前的获取文章封面的函数都不可用了。 本次给大家带来最新获取文章封面的函数,此函数需要根据文章的gid字段获取文章封面 如果文章中的封面字段为空,则自动根据......
  • 从 C# chart 中获取数据-2
    新增功能:Excel_EA1.将归档数据从WINCC的归档目录中拷贝出来,改名存储  2.使用WinCCArchiveConnector建立WINCC数据库的连接  2.1添加  2.2连接 改名后,连接是空的,名字必须默认:  原来的数据库文件拷贝过来后,显示文件,连接正常。 2.3添加不同的......
  • 从 C# chart 中获取数据-1
    已经可以从WINCC的归档数据库获取数据,并且以图形的方式显示出来了。现在要实现一个功能,就是建一个相当于WINCC历史趋势的标尺,移动后,下面显示数据,点击按钮,记录这组数据。获取的数据,可以进行后面的处理,比如作为神经网络的输入数据。下面对各个例子记录实现过程。 1.在excel中......
  • Feign使用实践
    Feign是一个声明式的HTTP客户端,用于简化微服务架构中的服务调用。它基于注解和接口定义,可以与服务发现组件(例如Eureka)和负载均衡组件(例如Ribbon)集成,提供了更简洁、可读性更高的代码来实现服务间的通信。下面是使用Java代码实现Feign入门示例的详细步骤:添加依赖项:在您的Java......
  • Ribbon使用实践
    Ribbon是Netflix开源的一个负载均衡客户端库,用于在微服务架构中实现客户端的负载均衡。它可以与服务发现组件(例如Eureka)集成,自动地根据可用的服务实例来分发请求。下面是使用Java代码实现Ribbon入门示例的详细步骤:添加依赖项:在您的Java项目中,添加以下依赖项以使用Ribbon客户......
  • Nacos使用实践
    Nacos(全称为"阿里巴巴服务注册中心和配置中心")是一个开源的分布式服务发现和配置管理系统,由阿里巴巴集团开发。它提供了服务注册与发现、动态配置管理、服务健康监测等功能,旨在帮助构建和管理云原生应用。下面是使用Java代码实现Nacos入门示例的详细步骤:准备工作:下载Nacos:从......
  • Seata使用实践
    Seata是一个开源的分布式事务解决方案,它提供了一种简单且可靠的方式来处理分布式环境中的事务一致性。Seata通过支持三个核心组件(TransactionCoordinator、ResourceManager和TransactionManager)来实现分布式事务的管理。下面是Seata的介绍以及使用Java代码实现的入门示例:Seata......
  • OAuth2使用实践
    OAuth2是一种授权框架,用于授权第三方应用程序访问受保护的资源,而无需共享用户凭据。它通过标准化的授权流程和令牌机制来实现安全的身份验证和授权机制。下面是OAuth2的介绍以及使用Java代码实现的入门示例:OAuth2的介绍:OAuth2定义了一种委托机制,允许用户授权第三方应用程序代表......