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

获取,设备,基线,性能,想法,实践 · 浏览次数 : 9

小编点评

**服务器硬件性能基线的获取方法** 获取服务器硬件性能基线的关键在于如何验证其满足产品需求。由于压测时变量较多,无法完全控制环境,服务器硬件性能基线获取相对更重要。 **验证方法:** * **性能测试:**通过测试服务器处理业务所需的资源进行一定比例的缩放,例如CPU、内存、硬盘、网络等。 * **基线测试:**通过对服务器硬件进行性能测试,例如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采用数据库模式测试,可以反馈部分性能瓶颈,但是意义可能不是非常大。不同业务场景差异巨大。

与获取设备基线性能的想法与实践相似的内容:

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

# 获取设备基线性能的想法与实践 ## 背景 ``` 产品的发展离不开功能实现和性能满足 功能实现还是可以通过功能测试,UAT等方式来验证。 性能是否满足有时候比较难处理。 虽然可以通过压测。但是压测时总会有太多的变量较难控制 一般客户也不会提供一套跟生产一样的环境进行验证。 感觉此时服务器硬件性能

基于Spring Cache实现Caffeine、jimDB多级缓存实战

在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine、ehcache堆外缓存、jimDB三级缓存,利用内存、堆外、jimDB缓存不同的特性提升接口性能, 内存缓存采用Caffeine缓存,利用W-TinyLFU算法获得更高的内存命中率;同时利用堆外缓存降低内存缓存大小,减少GC频率,同时也减少了网络IO带来的性能消耗;利用JimDB提升接口高可用、高并

[转帖]【存储测试】vdbench存储性能测试工具

一、前言 1、介绍 vdbench是一个I/O工作负载生成器,通常用于验证数据完整性和度量直接附加(或网络连接)存储性能。它可以运行在windows、linux环境,可用于测试文件系统或块设备基准性能。 2、版本包获取 vdbench版本包 下载链接 jdk版本包 下载链接(windows) 下载链

Linux:进程模型和进程管理

在Linux系统中,执行一个程序或命令就可以触发一个进程,系统会给予这个进程一个ID,称为PID,同时根据触发这个进程的用户与相关属性关系,基于这个PID一组有效的权限设置。举个常见的例子,我们要操作系统的时候通常是利用ssh连接程序或直接在主机上登录,然后获取shell。默认的shell是bash,对应的路径为/bin/bash,那么同时间的每个人登录都是执行/bin/bash,不过每个人获取的

【HarmonyOS NEXT】获取卸载APP后不变的设备ID

1. 背景 在HarmonyOS NEXT中,想要获取设备ID,有3种方式 UDID: deviceinfo.udid ,仅限系统应用使用 AAID: aaid.getAAID(),然而卸载APP/恢复设备出厂设置/后会发生变化 OAID:identifier.getOAID,同一台设备上不同的Ap

CH57x/CH58x/CH59x获取从机广播信息

有时需要通过主机设备(MCU非手机)获取从设备的广播信息例如广播包,MAC地址,扫描应答包等 以下的程序片段及功能实现是在WCH的CH59X的observer例程上实现的; 1、获取广播包 所有的函数在库函数中都可以找到,具体实现函数如下: case GAP_DEVICE_INFO_EVENT: {

手机穿戴设备能力共享,提升丰富交互体验

HUAWEI Wear Engine面向手机和穿戴设备的应用与服务开发者,提供华为穿戴设备开放能力。 开发者通过调用Wear Engine开放能力,可以实现手机上的生态应用与服务给华为穿戴设备发消息、发通知、传输数据,并获取穿戴设备状态、读取传感器数据等,也可以实现华为穿戴设备上的生态应用与服务给手

[转帖]lsblk命令详解

https://www.cnblogs.com/ishmaelwanglin/p/11043918.html lsblk命令用来查看block设备的信息. 主要应用场景: 获取wwnid,获取块设备列表,获取块设备类型(ssd,hdd),获取块设备的size等信息. 数据来源: /sys/dev/b

如何规范App广告的隐私获取,让用户拥有更多知情权?

随着互联网的不断普及,越来越多老百姓使用智能设备触达互联网。但用户经常发现自己无意间提到的东西,打开App就收到相关产品的广告推送,甚至有人怀疑手机App是通过麦克风来窃取自己平时聊天信息中的关键词进行定向的广告推送。 这种怀疑不无道理,与传统广告相比,如今的媒体广告主投放的广告定位更准确、形式更丰

Java socket 获取gps定位

1.Java socket 获取gps定位的方法 在Java中使用Socket来直接获取GPS定位信息并不直接可行,因为GPS数据通常不是通过Socket通信来获取的。GPS数据通常由设备(如智能手机、GPS接收器)上的GPS硬件模块生成,并通过操作系统或专门的GPS软件库来访问。 然而,如果我们的