服务器硬件测试 如何查看系统信息及测试使用工具

硬件长稳

一、查看硬件信息

sar(sar命令,好一个大宝剑_7750783的技术博客_51CTO博客超全)

sar命令,好一个大宝剑_ios

使用 yum install sysstat 命令安装
#sar命令来对系统作一个了解,该命令是系统维护的重要工具,主要帮助我们掌握系统资源的使用情况,特别是内存和CPU 的使用情况
#可以监测 磁盘,CPU,网络,内存,IO1.  类型,也就是我们要获取的是哪个类型的指标数据,这里的••-n••,代表的是监控一些网络信息2.  类型参数,有的类型带有参数,有的没有。这里的••DEV••,代表的是监控网卡信息3.  时间间隔,表示多少••秒•••采样一次数据,这里的••1••就是1秒4.  次数,表示采样的次数。比如时间间隔是3,采样次数是4,那么sar命令将会阻塞12秒钟
​
我们来看小小偷窥一下它的输出。
​
# sar -n DEV 1 2
03:10:29 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
03:10:30 PM        lo     30.00     30.00      2.09      2.09      0.00      0.00      0.00      0.00
03:10:30 PM      eth0      6.00      2.00      0.38      0.32      0.00      0.00      0.00      0.00
​
03:10:30 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
03:10:31 PM        lo     39.00     39.00      2.95      2.95      0.00      0.00      0.00      0.00
03:10:31 PM      eth0     11.00     12.00      0.72      5.26      0.00      0.00      0.00      0.00
​
Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
Average:           lo     33.00     33.00      2.38      2.38      0.00      0.00      0.00      0.00
Average:         eth0      9.33      8.33      0.60      2.39      0.00      0.00      0.00      0.00

storcli64工具使用介绍

storcli64工具使用介绍_wxt_hunxiaozi的博客-CSDN博客

smartctl监控磁盘性能

硬盘检测工具-smartctl的使用 - 简书

SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来 这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等 硬盘运行了几千小时后,很多内在的物理参数都会发生变化,某一参数超过报警阈值,则说明硬盘接近损坏 此时硬盘依然在工作,如果用户不理睬这个报警继续使用 那么硬盘将变得非常不可靠,随时可能故障.

Smartmontools通过控制和管理硬盘的SMART(Self Monitoring Analysis and Reporting Technology),自动检测分析及报告技术)技术来实现的,SMART技术可以对硬盘的磁头单元、盘片电机驱动系统、硬盘内部电路以及盘片表面介质材料等进行监测,当SMART监测并分析出硬盘可能出现问题时会及时向用户报警以避免计算机数据受损失。SMART技术必须在主板支持的前提下才能发生作用,而且SMART技术也不能保证能预报所有可能发生的硬盘故障。

检查磁盘健康状态 smartctl -H /dev/sda
查看磁盘详细情况 smartctl -a /dev/sda,
磁盘进行短期测试 smartctl -t short /dev/sda
查看磁盘测试结果 smartctl -l selftest /dev/sda 基本磁盘健康状态就可以定位出来
检查磁盘错误日志 smartctl -l error /dev/sdb
查看硬盘的基本参数 (设备型号、厂商、驱动版本等)
[root@server ~]# smartctl -i /dev/sda
查看系统上的所有设备
[root@server ~]# smartctl --scan
​
#smartctl -a -d megaraid,0 /dev/sda (其megaraid,0中的0代表的是在megaraid中的物理盘编号)
free :显示linux系统空闲的、已用的 物理内存及swap内存,及被内核使用的buffer。

iostat

  • 格式:iostat [参数] [时间] [次数] iostat -p ALL -h

  • 参数说明

参数说明
-c仅显示CPU状态统计信息
-d仅显示磁盘统计信息
-k或者-m以kb或者mb为单位显示,常用-h可读性高
-p指定显示IO的设备,ALL表示显示所有
-x显示详细信息

在这里插入图片描述

注意:iostat不能直接得到磁盘饱和度

字段说明
r/s每秒发送给磁盘的读请求次数,r/s+w/s 是磁盘IOPS
w/s每秒发送给磁盘的写请求次数,r/s+w/s手机磁盘IOPS
rkB/s每秒从磁盘读取的数据量,rkB/s+wkB/s 是吞吐量
wkB/s每秒向磁盘写入的数据量,rkB/s+wkB/s 是吞吐量
r_await读请求处理完成等待时间,包括在队列中的等待时间和设备实际处理时间 r_await+w_await ,是RT响应时间
w_await写请求处理完成等待时间,包括在队列中的等待时间和设备实际处理时间 r_await+w_await ,是RT响应时间
aqu-sz平均请求队列长度
rareq-sz平均读请求大小
wareq-sz平均写请求大小
%util磁盘处理I/O的时间百分比,表示的是磁盘的忙碌情况;如果>80% 就是磁盘可能处于忙碌状态 一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的
https://wenku.baidu.com/view/5c1e0d99f221dd36a32d7375a417866fb84ac030.html?_wkts_=1682229327091&bdQuery=%E7%A3%81%E7%9B%98%E8%AF%BB%E5%86%99%E7%AD%96%E7%95%A5
rrqm/s:          每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s:         每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s:            每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s:            每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s:         每秒读扇区数。即 delta(rsect)/s
wsec/s:         每秒写扇区数。即 delta(wsect)/s
rMB/s:          每秒读多少MB。
wMB/s:          每秒写多少MB。
avgrq-sz:       平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:       平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await:          平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm:          平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util:          一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
​
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

lsscsi硬盘

SCSI(Small Computer System Interface)是一套完整的数据传输协议,其主要功能是在主机和存储设备之间传送命令、状态和块数据。在各类存储技术中,SCSI技术可谓是最重要的脊梁。

SCSI协议位于操作系统和外部资源之间,它具有一系列的功能组件,操作系统对外部设备(如磁盘、磁带、光盘、打印机等)的I/O操作均可以通过SCSI协议来实现,一般情况下,SCSI协议都嵌入到设备驱动器或者主机适配器的板载逻辑中。

img

一、SCSI接口硬盘

SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。

SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI硬盘主要应用于中、高端服务器和高档工作站中。

其特点为:传输速率高、读写性能好、可连接多个设备、可支持热插拔,但是价格相对来说比较贵。 二、SATA接口类型

其英文名称为:Serial Advanced Technology Attachment。使用SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势。

Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。

串行接口还具有结构简单、支持热插拔的优点。

#lsscsi -s列出所有具有人类可读磁盘容量的 SCSI 设备:
peng@ubuntu:~$ lsscsi -s
[3:0:0:0]    cd/dvd  NECVMWar VMware SATA CD01 1.00  /dev/sr0        
[32:0:0:0]   disk    VMware,  VMware Virtual S 1.0   /dev/sda    536GB
#lsscis -L 显示详细信息
peng@ubuntu:~$ lsscsi -L
[3:0:0:0]    cd/dvd  NECVMWar VMware SATA CD01 1.00  /dev/sr0 device_blocked=0iocounterbits=32iodone_cnt=0x229ioerr_cnt=0x4iorequest_cnt=0x23aqueue_depth=1queue_type=nonescsi_level=6state=runningtimeout=30type=5

lspci(重点)

https://blog.csdn.net/star871016/article/details/11366254

显示所有的 pci 设备信息的命令。

服务器构成:服务器的组成_服务器结构_神.秘.人的博客-CSDN博客

#-vvv :v越多,显示的信息越详细 -s :后面跟随设备编号
lspci -vvv -s  0000:00:1f  #0000:00:1f为pci外设地址
#-D显示pci地址 查询网卡
lspci -D |grep -i eth
​
lspci -vvv -s 0001:03:00.0
# lspci 用来列出所有的pci设备的命令
# -v 使得lspci以冗余模式显示所有设备的详细信息
# -vv 使得lspci以过荣誉模式希纳是更详细的信息(事实上事PCI设备能给出的所有东西)。这些数据的确切意义没有在此手册页中解释,
# 如果你想知道更多,请参照/usr/include/linux/pci.h或者PCI规范
# -s [[<bus>]:][<slot>][.[<func>]] 仅显示指定总线、插槽上的设备或设备上的功能信息。设备地址的任何部分都可以忽略,或者以
# “*”替代(意味着所有值)。所有数字都是十六禁止。例如:“0:”指的是在0号总线上的所有设备;“0”值的事在任意总线上0号
# 设备的所有功能块;“0.3”选择了所有总线上0号设备的第三个功能块;“.4”则事只列出每一设备上的第四个功能块。

一、PCIe卡(硬盘背板上,扩展卡)

PCI Express卡不像处理来自多个源的数据的总线那样执行,而是可以通过开关实现一系列点对点连接,以控制数据需要去哪里。插入PCIe网卡后,将在插槽和卡之间形成逻辑连接以进行通信,称为互连或链路,从而在两个PCIe端口之间启用点对点通信通道,并允许它们都发送和接收普通的PCI请求和中断。

通道:

img

所有PCIe卡版本都是向后兼容的。也就是说,任何版本的PCIe卡和主板都可以在最低版本的模式下协同工作

二、LnkCap 为显卡理论的传输速率上限,LnkSta为显卡当前实际的传输速率,切记 LnkSta的值是会发生变化的,这是因为英伟达的显卡会根据实际使用情况进行自动切换。

dmesg

(英文全称:display message)命令用于显示开机信息,主要是一些硬件信息。kernel 会将开机信息存储在 ring buffer中。您若是开机时来不及查看信息,可利用 dmesg 来查看。开机信息亦保存在 /var/log 目录中,名称为 dmesg 的文件里。

-C, --clear 清除内核环形缓冲区(ring butter)
-c, --read-clear    读取并清除所有消息
-D, --console-off   禁止向终端打印消息
-d, --show-delta    显示打印消息之间的时间差
-e, --reltime   以易读格式显示本地时间和时间差
-E, --console-on    启用向终端打印消息
-F, --file <文件> 用 文件 代替内核日志缓冲区
-f, --facility <列表> 将输出限制为定义的设施
-H, --human 易读格式输出
-k, --kernel    显示内核消息
-T ,输出时间戳
​

ethtool

ethtool [网卡名]
用于查询及设置网卡参数的命令,它显示的信息来源于网卡驱动层,即 TCP/IP 协议的链路层。

SATA接口

作为目前应用最多的硬盘接口,SATA 3.0接口最大的优势就是成熟。普通2.5英寸SSD以及HDD硬盘都使用这种接口,理论传输带宽6Gbps,虽然比起新接口的10Gbps甚至32Gbps带宽差多了,但普通2.5英寸SSD也没这么高的需求,500MB/s多的读写速度也够用。

磁盘信息

SN 物理硬盘的序列号 Model Number 物理硬盘的模块序号 Firmware Revision 物理硬盘的FW版本 Raw size 物理硬盘的容量 Drive Temperature 磁盘温度

查看cpu的方法

cat /proc/cpuinfo

dmidecode -t 4

lscpu

RAID读写策略

影响 RAID卡性能的因素很多,其中可调因素主要有 RAID 卡缓存( CACHE )大小、写策略( WRITE POLICY )、读策略( READ POLICY )、条带的大小( STRIPE SIZE )。不同的 RAID 卡虽然说法略有不同,但意思是一样的。很多设置可以在 RAID 卡的配置工具中调整。在这里我们主要讲raid卡读写策略的区别。

在创建虚拟磁盘时,会需要对其数据读写策略进行定义,以规范后续虚拟磁盘运行过程中数据的读写方式。 数据读策略

在配置界面中一般体现为“Read Policy”。RAID卡支持如下两种数据读策略:

预读取方式:在配置界面中一般体现为“Always Read Ahead”、“Read Ahead”、“Ahead”等字样。使用此策略后,从虚拟磁盘中读取所需数据时,会把后续数据同时读出放在Cache中,用户随后访问这些数据时可以直接在Cache中命中,将减少磁盘寻道操作,节省响应时间,提高了数据读取速度。
​
要使用该策略,要求RAID卡支持数据掉电保护功能,且如果此时超级电容异常,可能导致数据丢失。
非预读取方式:使用此策略后,RAID卡接收到数据读取命令时,才从虚拟磁盘读取数据,不会做预读取的操作。

数据写策略

在配置界面中一般体现为“Write Policy”。RAID卡支持如下三种数据写策略:

回写:在配置界面中一般体现为“Write Back”等字样。使用此策略后,需要向虚拟磁盘写数据时,会直接写入Cache中,当写入的数据积累到一定程度,RAID卡才将数据刷新到虚拟磁盘,这样不但实现了批量写入,而且提升了数据写入的速度。当控制器Cache收到所有的传输数据后,将给主机返回数据传输完成信号。
​
要使用该策略,要求RAID卡支持数据掉电保护功能,且如果此时超级电容异常,可能导致数据丢失。
写通:在配置界面中一般体现为“Write Through”等字样。使用此策略后,RAID卡向虚拟磁盘直接写入数据,不经过Cache。当磁盘子系统接收到所有传输数据后,控制器将给主机返回数据传输完成信号。
​
此种方式不要求RAID卡支持BBU,即使BBU故障,也无影响,缺点是写入速度较低。
与BBU相关的回写:在配置界面中一般体现为“Write Back with BBU”等。使用此策略后,当RAID卡BBU在位且状态正常时,RAID卡到虚拟磁盘的写操作会经过Cache中转(即回写方式);当RAID卡BBU不在位或BBU故障时,RAID卡到虚拟磁盘的写操作会自动切换为不经过Cache的直接写入(即写通方式)。

针对LSI SAS3108:

当Firmware版本为4.270.00-4382及以下时,“Write Policy”的可选参数表现为“Write Back”(回写)、“Write Through”(写通)、“Write Back with BBU”(与BBU相关的回写)。
当Firmware版本为4.650.00-6121及以上时,“Write Policy”的可选参数表现为“Always Write Back”(回写)、“Write Through”(写通)、“Write Back”(与BBU相关的回写)。
BBU

bbu(3G网络使用的分布式基站架构)_摘编百科

二、测试工具

iperf

《Linux运维总结:服务器测试内网带宽上行和下行网速》_linux 内网网速测试_东城绝神的博客-CSDN博客^v88^control_2,239^v2^insert_chatgpt&utm_term=%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B5%8B%E8%AF%95%20&spm=1018.2226.3001.4187

#iperf下载地址
https://downloads.es.net/pub/iperf/
https://iperf.fr/iperf-download.php#archlinux
​
# wget http://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz
# tar zxvf iperf-3.0.6.tar.gz
​
# cd iperf-3.0.6
# ./configure
# make
# make install
​
要使用iperf,首先要启用一个服务端,这里假定服务端的IP地址为192.168.12.168,在此服务器上运行“iperf3 -s”即可开启iperf的服务器模式
参数:
客户端与服务器端公用参数
-p, --port #
设置端口,与服务器端的监听端口一致。默认是5001端口,与ttcp的一样。
-f, --format [kmgKMG]
速率显示单位。分别表示以Kbits,Mbits,Gbits,KBytes,MBytes,GBytes,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K
-i, --interval #
设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。
-F, --file name
指定要传输的文件。
-B, --bind <host>
绑定到主机的多个地址中的一个(用于多网口的设备)。对于客户端来说,这个参数设置了出栈接口。对于服务器端来说,这个参数设置入栈接口。这个参数只用于具有多网络接口的主机。在Iperf的UDP模式下,此参数用于绑定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址。参考-T参数。
-V, --verbose
输出更多细节信息。
-J, --json
以JSON格式输出。
–logfile f
把输出信息保存到一个日志文件。
​

yes|ptu -t -i 10000 -csv -log

taskset

优化命令taskset详解_taskset命令详解_灌南第一帅的博客-CSDN博客

numactl查看硬盘在哪块cpu上

taskset: 让进程运行在指定的CPU
​
1.linux taskset命令详解
SYNOPSIStaskset [options] [mask | list ] [pid | command [arg]...]
OPTIONS-p, --pidoperate on an existing PID and not launch a new task-c, --cpu-listspecifiy  a  numerical  list of processors instead of a bitmask.The list may contain multiple items,  separated  by  comma,  andranges.  For example, 0,5,7,9-11.-h, --helpdisplay usage information and exit-V, --versionoutput version information and exit 
2.对运行中的进程,文档上说可以用下面的命令,把CPU#1 #2 #3分配给PID为2345的进程:
# taskset -cp 1,2,3 2345
​
3.但我尝试没奏效,于是我关掉了MySQL,并用taskset将它启动:
# taskset -c 1,2,3 /etc/init.d/mysql start

阿里云安装教程如何对服务器进行简单压力测试-阿里云帮助中心

Stress(CPU压力测试)
  1. 执行lscpu | egrep -i cpu | awk '{print $2}'命令,查看服务器逻辑核数。

  2. 执行stress -c $core -t 1000000 &命令,进行CPU压力测试 。

    执行ps -ef|grep stress命令,查看stress进程是否正在运行。

    -c指定CPU核数,实际的CPU逻辑核数。128
    -t指定运行时间,单位为秒,可按照需求自定义。1000000(达到测试7×24小时的要求)

性能测试必备知识(4)- 使用 stress 和 sysstat 分析平均负载过高的场景-腾讯云开发者社区-腾讯云

--version、-v版本号
-q退出
-n显示已完成指令的情况
-t N、--timeout N运行 N 秒后停止
--backoff N等待 N 微秒后开始运行
-c N、--cpu N产生 N 个进程 每个进程反复的计算随机数的平方根 模拟 CPU 计算密集型场景
-i N、--io N产生 N 个进程 每个进程反复调用 sync() 模拟 I/O 密集型场景
-m N、--vm N产生 N 个进程 每个进程不断调用内存分配 malloc() 和内存释放 free() 函数
--vm-bytes B指定 malloc() 时内存的字节数,默认256MB
--vm-hang N指定执行 free() 前等待的秒数
-d N、 --hdd N产生 N 个进程 每个进程执行 write() 和 unlink() 的进程
--hdd-bytes B每个 hdd worker 写入 B 字节(默认为1GB)
fio(磁盘压力测试)

详细!!【测试】 FIO命令详解(一):ceph/磁盘IO测试工具 fio (并简要介绍iostat工具)Fio 输出内容的解释_51CTO博客_fio磁盘压力测试

请先了解每一项磁盘测试的具体命令,然后编写一个脚本循环测试,且实现并行测试每一块非系统盘。

IO 类型(IO pattern):指读写方式,顺序、随机两种。

块大小:上层应用读写数据时的最小逻辑存储单元,如:4KB,1MB。磁盘性能测试过程,衡量 IOPS 时,通常采用小块数据随机读写(如:4K >= 块大小 <=32K 块大小),而衡量吞吐量时,通常采用大块数据顺序读写(如:64K >= 块大小 <= 1M)。

IO 大小:每次 IO 请求需要读写的数据大小。

IO 引擎:作业读写 IO 的方式,即以特定方式来访问存储文件。每种IO引擎有其自身的使用场景。

线程数:默认情况下是使用 fork 创建进程的方式来运行作业,但开销较大,因此通常情况,会指定 -thread 参数以线程方式测试。

队列深度:队列深度指系统中等待处理的 IO 请求的数目。队列深度的值决定了应用程序可以让多个 IO 操作排队供磁盘处理。

#Fio常用输入参数
​
filename=/dev/emcpowerb 支持文件系统,磁盘或者裸设备,filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
filename=/dev/sda
direct=1                       测试过程绕过机器自带的buffer,使测试结果更真实
rw=randread             测试随机读的I/O
rw=randwrite               测试随机写的I/O
rw=randrw                   测试随机混合写和读的I/O
rw=read                       测试顺序读的I/O
rw=write                      测试顺序写的I/O
rw=rw                          测试顺序混合写和读的I/O
bs=4k                          单次io的块文件大小为4k
bsrange=512-2048      同上,提定数据块的大小范围
size=5g                        本次的测试文件大小为5g,以每次4k的io进行测试
numjobs=30                 本次的测试线程为30
runtime=1000               测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
ioengine=psync            io引擎使用pync方式(同步I),如果要使用libaio引擎, 需要yum install libaio-devel包
rwmixwrite=30              在混合读写的模式下,写占30%
group_reporting           关于显示结果的,汇总每个进程的信息
lockmem=1g                只使用1g内存进行测试
zero_buffers                用0初始化系统buffer。
nrfiles=8                     每个进程生成文件的数量。
​
磁盘读写常用测试点:1. Read=100% Ramdon=100% rw=randread (100%随机读)2. Read=100% Sequence=100% rw=read (100%顺序读)3. Write=100% Sequence=100% rw=write (100%顺序写)4. Write=100% Ramdon=100% rw=randwrite (100%随机写)5. Read=70% Sequence=100% rw=rw, rwmixread=70, rwmixwrite=30  (70%顺序读,30%顺序写)6. Read=70% Ramdon=100% rw=randrw, rwmixread=70, rwmixwrite=30 (70%随机读,30%随机写)
-----------------------------------
服务器io测试工具-fio
https://blog.51cto.com/u_12993908/5275922
​
iodepth和numjobs:
使用numjobs参数测试出的效果要好,更能够增加集群客户端测试压力,使测试结果更准确。随着munjobs的增大,带宽也不断增大。而iodepth参数设置后,集群带宽值几乎不变,反而延时随着iodepth增加而成倍增加。混合设置后也同样如此,随着iodepth的值增加,带宽值没有增加,反而延时成倍增加。所有延时增加的倍数刚好是iodepth增加的倍数。

fio测试结果

 fio -filename=/dev/rbd0 -name=mytest
​
mytest: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
​
fio-3.1
​
Starting 1 process
​
Jobs: 1 (f=1): [f(1)][100.0%][r=273MiB/s,w=0KiB/s][r=69.9k,w=0 IOPS][eta 00m:00s]
​
mytest: (groupid=0, jobs=1): err= 0: pid=3367325: Thu Apr  4 14:30:31 2019
​read: IOPS=26.5k, BW=103MiB/s (108MB/s)(10.0GiB/99102msec)
​clat (nsec): min=1042, max=528258k, avg=37415.13, stdev=2331215.59
​lat (nsec): min=1087, max=528258k, avg=37464.12, stdev=2331215.58
​clat percentiles (nsec):
​|  1.00th=[    1160],  5.00th=[    1192], 10.00th=[    1208],
​| 20.00th=[    1240], 30.00th=[    1256], 40.00th=[    1304],
​| 50.00th=[    1368], 60.00th=[    1448], 70.00th=[    1496],
​| 80.00th=[    1592], 90.00th=[    1768], 95.00th=[    1992],
​| 99.00th=[    2576], 99.50th=[    3504], 99.90th=[    35584],
​| 99.95th=[  5406720], 99.99th=[119013376]
​bw (  KiB/s): min= 8192, max=1136744, per=99.01%, avg=104755.10, stdev=208227.89, samples=198
​iops        : min= 2048, max=284186, avg=26188.71, stdev=52057.00, samples=198
​lat (usec)  : 2=95.25%, 4=4.31%, 10=0.22%, 20=0.09%, 50=0.03%
​lat (usec)  : 100=0.01%, 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01%
​lat (msec)  : 2=0.03%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.01%
​lat (msec)  : 100=0.01%, 250=0.01%, 500=0.01%, 750=0.01%
​cpu          : usr=1.94%, sys=4.69%, ctx=2328, majf=0, minf=62
​IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
​submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
​complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
​issued rwt: total=2621440,0,0, short=0,0,0, dropped=0,0,0
​latency  : target=0, window=0, percentile=100.00%, depth=1
​
Run status group 0 (all jobs):
​READ: bw=103MiB/s (108MB/s), 103MiB/s-103MiB/s (108MB/s-108MB/s), io=10.0GiB (10.7GB), run=99102-99102msec
​
Disk stats (read/write):
​rbd0: ios=3741/0, merge=7487/0, ticks=428805/0, in_queue=428827, util=99.12%
​

clat percentiles:clat的分布统计数据,表示 clat “置信级”。

90.00th=[ 1768]:表明 90% 的 IO 的平均 clat 是1768 nsec。

NOTES:其计算方式,所有 IO 结束后,按照每个 IO clat 的值从小到大依次排序,并分别计算出前1%的平均clat,如:1.00th=[ 1160],百分比越大,clat的值也会随着增大。

fio参数怎么调

探索fio参数如何选择以及全方位对比HDD和SSD性能_iodepth如何理解_享学IT的博客-CSDN博客

磁盘读写常见的指标

(1)IOPS(Input/Output Operations per Second)

  • 指每秒能处理的I/O个数,表示块存储处理读写(输出/输入)的能力,单位为次,有顺序IOPS和随机IOPS

  • 比如100次/秒,那iops就是100次/秒,例如数据库类应用等典型场景重点提升这个指标,下面是阿里云盘性能

(2)吞吐量/带宽(Throughput)

  • 是指单位时间内可以成功传输的数据数量,单位为MB/s

  • 比如 一个硬盘的读写 IO 是 1MB,硬盘的 IOPS 是 100,那么硬盘总的吞吐率就是 100MB/s

    • 带宽 = IOPS * IO大小

(3)访问时延(Latency)

  • 是指IO请求从发出到收到响应的间隔时间,常以毫秒ms或者微妙us为单位

  • 硬盘响应时间 = 硬盘访问时间 + IO排队延迟,过高的时延会导致应用性能下降或报错。

  • 普通的HDD磁盘,随机IO读写延迟是10毫秒,IO带宽大约100MB/秒,随机IOPS一般在100左右

(4)使用率 Utilization

  • 指磁盘处理 I/O 的时间百分比,过高的使用率 ,常规字段 Utilization-缩写%util 表示

  • 如超过 80%意味着磁盘 I/O 存在性能瓶颈

(5)I/O 等待队列长度 Queue Length

  • 表示等待处理的 I/O 请求的数目,如果 I/O 请求压力持续超出磁盘处理能力,就会增大队列长度

(6)饱和度

  • 使用率只考虑有没有IO,不考虑IO的大小;当使用率是100%时,磁盘也可能接收新的IO请求

-磁盘IO常见指标和分析命令工具介绍

(1)iotop命令

  • 查看当前系统各个进程使用磁盘IO的情况

  • 安装:yum -y install iotop

  • iotop -o -d 3 每3秒刷新下各个进程磁盘IO情况

参数说明
-o只显示正在读写磁盘的程序
-d跟一个数值,表示iotop命令刷新的时间

在这里插入图片描述

字段说明
Total DISK READ从磁盘中读取的总速率
Total DISK WRITE往磁盘里写入的总速率
Actual DISK READ从磁盘中读取的实际速率
Actual DISK WRITE往磁盘里写入的实际速率
TID线程ID,按p可以转换成进程ID
PRIO优先级
USER线程所有者
DISK READ进程从磁盘中读取的速率
DISK WRITE进程往磁盘里写入的速率
SWAPIN进程swap交换百分比
IOIO等待所占用的百分比
COMMAND具体的进程命令
  • iostats是系统级别的IO监控

  • iotop是进程级别的IO监控

(2)案例测试:模拟IO密集型应用,系统是4核

  • 终端一 模拟2个磁盘IO进程, 持续600s stress --hdd 2 --hdd-bytes 6G --timeout 600s

  • 终端二 全局 iostat -d -x 1

  • 终端三 全局 top

  • 终端四 局部 iotop

在这里插入图片描述

  • 测试结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8692.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万字长文,为你送上全网最全Flutter学习资料!

话不多说直接上目录&#xff0c;干货较多内容很长&#xff0c;建议先收藏供以后慢慢查阅。 目录 文章视频组件导航模板插件框架实验性游戏开源App实用工具社区书籍福利 文章 介绍 Google IO 2018 [1.1K&#x1f44f;] - 构建美观&#xff0c;灵活的用户界面。Presentation …

百度工程师的软件质量与测试随笔

作者 | 百度移动生态质效工程师们 导读 在降本增效、以chatGPT为代表的大模型技术横空出世的背景下&#xff0c;对软件质量和软件测试的领域也带来了巨大冲击&#xff0c;也使得软件质量工作者开始变得焦虑&#xff0c;主要体现在&#xff1a;公司对软件质量从业者的不重视加剧…

首周下载量碾压ChatGPT!谷歌前员工创第二个Open AI?

来源 | 新智元 硅谷独角兽&#xff0c;又来震撼世界了&#xff01; 这支名叫Character Technologies的独角兽的核心力量&#xff0c;来自前谷歌LaMDA团队。 他们的新产品在移动端上线不到一周&#xff0c;下载量就达到了170万&#xff0c;直接碾压了ChatGPT&#xff01; 并且…

编译器大神 Chris Lattner 官宣新编程语言:Mojo,比 Python 快 35000 倍!

整理 | 王子彧 责编 | 张红月 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 说起 Chris Lattner&#xff0c;大家一定不陌生。这位编译器大神&#xff0c;曾经领导了众多大型技术项目。他不仅是 LLVM 项目的主要发起人&#xff0c;还是 Clang 编译器的创作…

走进社区客户端测试 | 得物技术

0.引言 社区 C 端 质量 体系建设思考&#xff1f; 询问 一下 ChatGPT 1.关于社区客户端 1.1 社区端上功能 1.2 客户端技术栈移动端应用可以分为三大类&#xff1a;Web 应用&#xff08;Web App&#xff09;、原生应用&#xff08;NativeApp&#xff09;、混合应用&#xff0…

Arm 确认对华禁售先进芯片设计产品;谷歌不准备推出 ChatGPT 类聊天产品;Bugzilla 宣布未来计划|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

深度:行业拐点将至 “蔚来们”还有未来吗?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 2023年以来&#xff0c;新能源汽车行业热点频出。 2023年2月&#xff0c;威马汽车身陷停工停产、资金紧张等舆论漩涡。据最新消息透露&#xff0c;威马此前融资的30亿已经到账&#xff0c;3月中旬会进行有序的复工复产&…

运行Trezor 钱包suite项目+firmware(包含onekey)项目

一些流程 文章目录 目录 文章目录 前言 一、trezor钱包 一、firmware的安装步骤 二、suite官方操作 步骤 1.git 1.5 以下才是核心&#xff0c;尝试运行onekey的firmware 需要在ubuntu的终端中进行nix操作 ​编辑 2.接着 三、代码分析 1.doc的分析 Repository Structure 总结 前…

FreeRTOS内核:详解Task各状态(GPT4帮写)

FreeRTOS内核&#xff1a;详解Task各状态&#xff08;GPT4帮写&#xff09; 1. 背景2. Task顶层状态区分3. 运行状态&#xff08;Running&#xff09;4. 非运行状态4.1 阻塞态&#xff08;Blocked&#xff09;&#xff1a;4.2 挂起态&#xff08;Suspended&#xff09;4.3 就绪…

FreeRTOS内核:详解Queue队列 FIFO(GPT4帮写)

FreeRTOS内核&#xff1a;详解队列管理FIFO 1. 背景2. Queue相关API2.1 xQueueCreate()&#xff1a;创建2.2 xQueueSend()&#xff1a;发送2.3 xQueueReceive()&#xff1a;接收2.4 vQueueDelete()&#xff1a;删除2.5 xQueuePeek() &#xff1a;不删除的方式从FIFO读数据&…

chatgpt-如今最流行的自动化测试框架是什么

Whats the best automation test framework? 什么是最好的自动化测试框架&#xff1f; The best automation test framework depends on your specific needs and skill level. Here are some commonly used automation test frameworks: 最好的自动化测试框架取决于您的具体…

你的自动化框架如何设计的?为什么感觉面试官总是不满意,到底问题出在哪?

前言 去面试自动化测试岗位&#xff0c;尤其是接口自动化岗位&#xff0c;面试官总会问&#xff1a;说下你的自动化框架如何设计的&#xff1f; 为什么回答后&#xff0c;面试官对你的框架设计总是感觉不满意&#xff1f; 自动化测试实现的几种方式 对于不同的公司来说&…

使用 ChatGPT 从头开始​​研究和构建 SwiftUI 应用程序

今天我试图从头开始构建一个应用程序,向 ChatGPT 征求意见。我想第一次尝试创建一个基于 IOS 16 的 100% SwiftUI 应用程序。 技术选择 我想在 SwiftUI 中创建一个应用程序,采用模块化、多语言的方法,采用 mvvm 架构并使用协调器。 所以我问我如何创建一个满足我要求的应…

大学生对chatGPT的认知和使用

新一代对话式人工智能chatGPT在全球范围狂揽1亿名用户&#xff0c;不止于科技界破圈&#xff0c;更成为街头巷尾的谈资。 chatGPT能干什么&#xff1f; https://openai.com/blog/chatgpt/ chatGPT官网 写解决方案编写代码 说笑话 个人体验&#xff1a; 实用性强&#xff0c;…

ChatGPT 成全球学生的“作弊神器”?韩国学生“喜”提 0 分……

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 仅仅横空出世 70 余天的 ChatGPT &#xff0c;已经累计用户超 1 亿&#xff0c;创下了互联网最快破亿应用记录。根据 Similarweb 的数据&#xff0c;截至今年 1 月&#xff0c;平均每天…

本科论文查重网站分享

本科论文查重网站分享 本科论文需要查重&#xff0c;很多人都知道。知网作为查重届的权威代表&#xff0c;翟天临博士却不知道知网是什么&#xff0c;于是学历造假最终被发现。本文主角不是翟“博士”&#xff0c;而是和知网一样有论文查重功能的两个免费查重网站——YY和百度…

分享一个靠谱的免费论文查重网站

给大家分享一个靠谱的免费论文查重网站PaperPP&#xff1a;http://www.paperpp.com&#xff0c;可以一站解决“论文查重、改重、降重”等问题TOC 欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑…

推荐几个免费论文查重网站

文章目录 一、paperyy二、 paperday三、 paperpass四、 paperfree五、 paperok六、 papertime 一、paperyy https://www.paperyy.com/ 二、 paperday https://www.paperday.cn/ 三、 paperpass https://www.paperpass.com/ 四、 paperfree https://www.paperfree.cn/…

股票证券行业,怎样快速获客,有效途径有哪些

证券行业最开始起源于荷兰&#xff0c;全世界第一家股票交易所便是荷兰的阿姆斯特丹交易所&#xff0c;这个交易中心确立了荷兰海上霸主的影响力。证券市场的主体作用便是处理企业融资难题。汇总起來&#xff0c;证券行业要把证券化&#xff0c;都切分优化制成标准物质&#xf…

如何利用tushare获得上市公司的日线行情

本人tushare ID&#xff1a;476096&#xff0c;欢迎交流&#xff0c;可通过此链接注册tushare账号&#xff1a;Tushare大数据社区 大家都知道日线行情对于我们分析股票非常有帮助&#xff0c;那我们如何通过tushare的接口实现这一需求呢。 首先我们打开tushare的数据接口&…