Linux硬盘测速

这篇具有很好参考价值的文章主要介绍了Linux硬盘测速。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

linux硬盘测速,项目中经常遇到在第三方虚拟化平台搭建的操作系统部署业务系统,由于服务器硬盘、虚拟化平台自身问题使得硬盘速度较慢,导致业务系统卡慢超时。

本文主要介绍linux下的硬盘读写速度以及IO测速

简单的硬盘读写测速:dd+hdparm

1、测试硬盘读速度:hdparm

硬盘在读写在过程中部分数据通过buffer和cache缓存在内存中从而提高读写速度,hdparm对两种缓存做了区分。

cache缓存:硬盘cache的目的是提高硬盘读/写信息的速度,在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速度。

buffer缓存:从硬盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去硬盘中读取,这样就可以减少硬盘的读写次数,计算机对缓冲区的操作大大快于对硬盘的操作,故应用缓冲区可大大提高计算机的运行速度

a.测试buffer缓存下硬盘的读取速度

[root@localhost ~]# hdparm -t /dev/sda

/dev/sda:

Timing buffered disk reads: 1118 MB in 3.01 seconds = 371.97 MB/sec

b.测试cache缓存下硬盘读取速度

[root@localhost ~]# hdparm -T /dev/sda

/dev/sda:

Timing buffered disk reads: 1118 MB in 3.01 seconds = 371.97 MB/sec

c.测试不用buffer缓存情况下,读取10g数据的速度,默认一个offset =1G速度

[root@localhost ~]# hdparm -t --direct --offset 10 /dev/sda

/dev/sda:

Timing O_DIRECT disk reads (offset 10 GB): 1808 MB in 3.00 seconds = 602.32 MB/sec

2、测试硬盘读写速度:dd

dd用于复制,从if读出,写到of,测试出的结果均为顺序读写速度

if=/dev/zero不产生IO,因此可以用来测试纯写速度

同理of=/dev/null不产生IO,可以用来测试纯读速度

bs是每次读或写的大小,即一个块的大小,count是读写块的数量

a.测试纯写速度,8k的块大小写125000次

[root@localhost ~]# dd if=/dev/zero of=test bs=8k count=125000

125000+0 records in

125000+0 records out

1024000000 bytes (1.0 GB) copied, 5.10565 s, 201 MB/s

b.测试纯读速度,8k的块大小写125000次

[root@localhost ~]# dd if=test of=/dev/null bs=8k count=125000

125000+0 records in

125000+0 records out

1024000000 bytes (1.0 GB) copied, 0.361756 s, 2.8 GB/s

c.上述dd命令完成前并没有让系统真正把文件写到硬盘上,dd先把数据写到操作系统“写缓存”,就完成了写操作。需要调用sync函数,把“写缓存”中的数据刷入硬盘。

1、-fsync是将数据已经写入硬盘,但是是在经过缓存后最后再写入硬盘

[root@localhost ~]# dd if=/dev/zero of=test bs=8k count=125000 conv=fsync

125000+0 records in

125000+0 records out

1024000000 bytes (1.0 GB) copied, 5.31894 s, 193 MB/s

2、 -dsync 可以当成是模拟数据库插入操作,在/dev/zone中读出一条数据就立即写入硬盘,速度会很慢

[root@localhost ~]# dd if=/dev/zero of=test bs=8k count=1250 oflag=dsync

1250+0 records in

1250+0 records out

10240000 bytes (10 MB) copied, 1.18191 s, 8.7 MB/s

专业的硬盘压测工具:FIO

利用fio进行测试时,需要将旧的硬盘先卸载掉然后格式化。或者添加一块新硬盘后格式化。如果磁盘已经挂载,执行fio会提示/dev/sdb appears mounted, and 'allow_mounted_write' isn't set. Aborting.

umount /dev/sdb # 卸载硬盘

mkfs.ext4 /dev/sdb # 格式化硬盘

a.参数说明

filename=/dev/sdb 测试文件名称,通常选择需要测试的盘的data目录。

direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。

rw=randwrite 测试随机写的I/O

rw=randrw 测试随机写和读的I/O

bs=16k 单次io的块文件大小为16k,如不写默认为4k

size=1g 测试文件大小为1g

iodepth 测试的io深度

numjobs=1 本次的测试线程数

runtime=60 测试时间为60秒

ioengine=psync io引擎使用pync方式

rwmixwrite=30 在混合读写的模式下,写占30%

group_reporting 关于显示结果的,汇总每个进程的信息

b.4K 随机写,队列深度为1,10g的数据,测试线程数为1,测试时间 60s

fio -name=fiotest -filename=/dev/sdb -group_reporting -direct=1 -ioengine=libaio -iodepth=1 -size=1g -rw=randwrite -bs=4k -numjobs=1 -runtime=60

Linux硬盘测速

c.测试 1M 顺序读,队列深度为1,10g的数据,测试线程数为1,测试时间 60s:

fio -name=fiotest -filename=/dev/vdb -group_reporting -direct=1 -ioengine=libaio -iodepth=1 -size=1g -rw=read -bs=1M -numjobs=1 -runtime=60

Linux硬盘测速

d.结果参数解析

磁盘的吞吐量bw,这个是顺序读写主要关注的参数

磁盘的每秒读写次数iops,这个是随机读写主要关注的参数

io=执行了多少M的IO

bw=平均IO带宽

iops=IOPS

runt=线程运行时间

slat=提交延迟

clat=完成延迟

lat=响应时间

bw=带宽

cpu=利用率

IO depths=io队列

IO submit=单个IO提交要提交的IO数

IO latencies=IO完延迟的分布

io=总共执行了多少size的IO

aggrb=group总带宽

minb=最小.平均带宽.

maxb=最大平均带宽.

mint=group中线程的最短运行时间.

maxt=group中线程的最长运行时间.

ios=所有group总共执行的IO数.

merge=总共发生的IO合并数.

ticks=Number of ticks we kept the disk busy.

io_queue=花费在队列上的总共时间.

util=磁盘利用率文章来源地址https://www.toymoban.com/news/detail-439407.html

到了这里,关于Linux硬盘测速的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 紫光同创FPGA实现PCIE测速试验,提供PDS工程和Linux QT上位机源码和技术支持

    紫光同创FPGA实现PCIE测速试验,提供PDS工程和Linux QT上位机源码和技术支持 “苟利国家生死以,岂因祸福避趋之!”大洋彼岸的我优秀地下档员,敏锐地洞察到祖国的短板在于高精尖半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的初心,懂先生站在

    2024年02月08日
    浏览(48)
  • linux硬盘分区与删除

    linux硬盘分区:MBR分区(2T以下)      GPT分区(2T以上)                             命令fdisk                            命令gdisk 1.先在虚拟机建立一个新的磁盘 2.在虚拟机查看磁盘分区  直接打命令lsblk 显示不出才创建的磁盘 需要进行刷新,才能显示出来,我们输

    2024年01月16日
    浏览(33)
  • linux系统查看硬盘

    输入命令: lsblk 可以看到下图的服务器存在一个硬盘sda ,容量为40g  可以看到下图的服务器存在两个硬盘sda和sdb  其中sda容量为446g,sdb容量为21.8T

    2024年02月11日
    浏览(36)
  • Linux永久挂载硬盘

    今天来记录一下在centos7下挂载磁盘后,重启服务器磁盘挂载失效的解决办法。 1、查看linux下的挂载硬盘 df -h 2、查看系统的硬盘 lsblk 3、格式化磁盘 mkfs -t ext4 /dev/sdb 4、挂载磁盘 mount /dev/sdb /data 5、编辑 /etc/ fstab 文件,增加一行 vim /etc/ fstab /dev/sdb /data ext4 defaults 0 0 6、执行自

    2024年02月06日
    浏览(52)
  • Linux_查看硬盘占用情况

    一、查看是什么占用了硬盘空间 这个命令查看的是显示目前在 Linux 系统上的所有文件系统磁盘使用情况,并根据大小适当显示(-h 参数代表以可读的方式展示文件的大小)。 一下为加 -h 和不加 -h 的结果 不加 -h 加 -h   Filesystem:文件系统 Size: 分区大小 Used: 已使用容量

    2024年02月04日
    浏览(43)
  • Linux fio测试硬盘性能

    在Linux系统中,测试硬盘的性能一般使用fio工具实现,fio是Flexible I/O Tester的缩写。是一个常受欢迎的、用于测试存储性能的工具,而且还可以模拟多种不同的I/O模式和工作负载。 一般我们要测试一块硬盘的性能,一般需要进行 随机写入测试、随机读取测试、顺序写入测试、

    2024年02月08日
    浏览(51)
  • linux下故障硬盘点灯操作

    按照常理说,硬盘故障了,会自动亮红灯,故障消除后会自动恢复正常,这个本来是服务器自带的功能。但现实情况往往不是这样,即使硬盘故障了,现场通过外观也看不出来。 在运维的工作中,很大也是很重要的一项工作就是故障处理,而故障处理中以硬盘故障最为常见。

    2024年02月06日
    浏览(21)
  • Linux(Centos)查看硬盘大小

    使用 df 命令: df 命令可以用来显示文件系统的磁盘使用情况,包括每个挂载点的磁盘空间大小和使用情况。要查看硬盘大小,可以运行以下命令: 这将以人类可读的方式显示文件系统的磁盘大小,以 GB 或 MB 为单位。 下面是 df -h 命令输出的参数说明: Filesystem :文件系统的

    2024年02月08日
    浏览(47)
  • linux硬盘挂载(linux 修改某个磁盘挂载到新目录)

    在Linux操作系统中,挂载硬盘是将硬盘的分区或者整个硬盘与文件系统关联起来,使得我们可以通过文件系统访问硬盘中的数据。 确认硬盘信息 该命令会列出所有已连接到系统的硬盘设备及其分区信息。根据输出结果找到你要挂载的硬盘设备,记下设备路径,例如/dev/sda 新硬

    2024年02月05日
    浏览(52)
  • Linux查看各用户硬盘占用大小

    在Linux中,如果要统计各用户占用硬盘的大小,可以执行如下的命令 du -sh /home/* 这条命令会以K、M、G等单位输出 /home 下各用户目录占用硬盘的总大小,例如下面这样: 参数 s 的作用是 只显示总计(summary)信息 ,否则 du 会以默认方式输出目标目录下所有子目录占用的硬盘大

    2023年04月26日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包