性能测试之磁盘内存读写性能分析

218 篇文章 0 订阅
156 篇文章 0 订阅

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读2.7k次,点赞85次,收藏12次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

磁盘

  • 扇区sector: 是磁盘中最小的物理存储单元,单位 512字节(byte)
  • 块Block:在linux文件系统中多个连续的扇区,被称为block,块的概念,也是系统中认为最小的存储单元

linux:类似Ext4文件系统,就是磁盘分块

windows: 类似NTFS文件系统,也是块,只是被叫做簇

  • 页page:操作系统与内存数据交换的最小单位
  • 缓冲区: buffer 内存与磁盘速度不匹配,在数据与磁盘进行10时,数据先进入缓冲区
  • 页缓存: linux内存中对磁盘部分数据的副本,加快程序读取磁盘的速度和进程间数据共享

在linux系统中,一切都是文件。它把一切资源都看作是文件, 像是硬件设备等,我们对硬件的访问,可以通过读写文件的方式来进行。

磁盘文件系统 :ext4,xfs,nfs

内存文件系统:/proc,/sys 基于内存的文件系统

网络文件系统:用于访问其他设备数据的文件系统,nfs,smb

读写文件的操作流程 :

fdisk -l 查看磁盘信息


磁盘阵列RAID (Redundant Array of Independent Disks)

-- 独立磁盘构成具有冗余能力的阵列

由多块独立的磁盘组合成一个容量巨大的磁盘组,利用磁盘提供数据所产生的加成效果提升整个磁盘系统的效能。利用这个技术,把数据切割成多段,分别存在不同磁盘上

  • RAID0:数据分片存在2块磁盘,读写速度提升2倍,主要用于SWAPITMP,但是数据不几余,数据恢复难 ---提速
  • RAID1:相同数据几余存入2块磁盘,写速度不变,读速度提升2倍,数据几余1份,主要用于数据备份,但磁盘利用率低 ---备份
  • RAID5:数据分片和校验码混合存储3份,读写速度提升2倍,主要在要求高速时用,可以用于数据还原
  • RAID10:2块磁盘1组先做RAID1,多组RAID1,再做RAIDO。读写速度N倍 兼顾RAID 0 和1 的优点


磁盘监听命令

iostat 需要通过 yum install systat -y 安装

iostat -dx 2

  • rrqm/s: 每秒进行merge的读操作数目,即delta(rmerge)/s
  • wrqm/s:每秒进行merge的写操作数目 即 delta(wmerge)/s
  • r/s: 每秒完成的读I/0设备次数 即delta(rio)/s
  • w/s:每秒完成的写I/0设备次数
  • rsec/s: 每秒读扇区数
  • wsec/s: 每秒写扇区数
  • rkB/s: 每秒读k字节数
  • wkB/s:每秒写k字节数

查看具体磁盘使用空间使用 df-h

df -h 跟上详细系统名

du -sh 查看当前文件夹的磁盘大小

磁盘的性能指标

  • 使用率: 指磁盘处理I/O的时间百分比
  • 饱和度: 磁盘处理I/0的繁忙程度
  • IOPS: inputloutput per second 每秒的I/0请求
  • 吞吐量: 每秒的I/O请求大小
  • 响应时间: 指I/O请求从发出到手到响应的时间间隔

磁盘写性能分析

先清除缓存 使用命令 echo 3 > /proc/sys/vm/drop_caches

  • echo 1 > /proc/sys/vm/drop_caches 释放页缓存
  • echo 2 > /proc/sys/vm/drop_caches 释放目录项
  • echo 3 > /proc/sys/vm/drop_caches 释放目录项加页缓存和 节点

执行完该命令后 buffer会清空为0,cache会减少空间,free 会增大

清除后的磁盘信息

再模拟写操作: dd if=/dev/sda of=$PWD/outfile bs=25MB count=99

  • if :输入文件(input file), of 输出文件 (out file)
  • /dev/sda 读取设备的第一个磁盘会有IO产生
  • of=$PWD/outfile 输出到当前目录的下的outfile文件
  • bs=25mb count=99块文件25mb ,执行99次

vmstat 1 指标得出:cache增大,bo(写)变大,in (每秒中断)也有明显数据变化 ,free数据开始变小 ,buff数据不变

iostat -dx 1 指标得出:wkB/s (每秒写k字节数)有大量数据 await也有数据 w/s (每秒完成的写I/0设备次数)数据变大

写文件的速度大概是72MB/s

生成的文件


磁盘读性能分析

先清除缓存 使用命令 echo 3 > /proc/sys/vm/drop_caches

再模拟读操作:time dd if=/dev/sda of=/dev/null bs=25MB count=99

  • if :输入文件(input file), of 输出文件 (out file)
  • /dev/sda 表示一个伪设备只产生字符流不会产生IO
  • of= dev/null 伪设备,回收站可以无限放数据
  • bs=25mb count=99块文件25mb ,执行99次

/dev/null设备

是个黑洞设备,它丢弃一切写入其中数据,空设备通常被用于丢弃不需要的输出流。记得当年用windows时候,有个类似的设备:NUL ,跟这个功能一样。任何写入该设备数据都会被丢弃掉。从这个里面读取数据返回是空。将一些不用内容经常发送给这个设备,丢弃不需要的数据。

vmstat 1 指标得出:cache部分减少,bi(读)变大,in (每秒中断)也有明显数据变化 ,free数据开始变小 ,buff大幅增大

iostat -dx 1 指标得出:rKB/s/s (每秒读k字节数)有大量数据 await也有数据 w/s (每秒完成的写I/0设备次数)数据有但是比较小

读取文件的速度大概是228MB/s


内存读写性能分析

/dev/zero设备 使用内存生成字符流

在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。

先清空缓存 echo 3 >/proc/sys/vm/drop_caches

再模拟操作:time dd if=/dev/zero of=/dev/null bs=25MB count=999 (产生数据丢到回收站 所以没有磁盘的操作只会有内存的操作)

磁盘的读写速度,几百MB/s 内存 几GB/s


总结:写操作时 ,cache增大, bo(写)有明显数据,

读数据时,buff增大,bi(读)有明显数据

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值