linux怎么查看硬盘读写数据,Linux查看硬盘读写情况(汇总版)

linux怎么查看硬盘读写数据,Linux查看硬盘读写情况(汇总版)除了 CPU 和内存 硬盘读写 I O 能力也是影响 Linux 系统性能的重要因素之一 本节将介绍几个可用来查看硬盘读写性能的系统命令 并教大家如何通过这些命令的输出结果 判断出当前系统中硬盘是否处于超负荷运转 Linux 查看硬盘读写性能 sar d 命令 Linuxsar 命令 一节 已经对 sar 命令的基本用法做了详细的介绍 这里不再赘述 接下来主要讲解如何通过 sar d 命令分析出硬

除了 CPU 和内存,硬盘读写(I/O)能力也是影响 Linux 系统性能的重要因素之一。本节将介绍几个可用来查看硬盘读写性能的系统命令,并教大家如何通过这些命令的输出结果,判断出当前系统中硬盘是否处于超负荷运转。

Linux查看硬盘读写性能:sar -d命令

《Linux sar命令》一节,已经对 sar 命令的基本用法做了详细的介绍,这里不再赘述,接下来主要讲解如何通过 sar -d 命令分析出硬盘读写的性能。

下面是执行 sar -d 命令的输出结果样例:

[root@localhost ~]# sar -d 3 5

Linux 2.6.32-431.el6.x86_64 (localhost) 10/25/2019 _x86_64_ (1 CPU)

06:36:52 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

06:36:55 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

06:36:55 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

06:36:58 AM dev8-0 1.00 0.00 12.00 12.00 0.00 0.00 0.00 0.00

06:36:58 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

06:37:01 AM dev8-0 1.99 0.00 47.76 24.00 0.00 0.50 0.25 0.05

Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

Average: dev8-0 1.00 0.00 19.97 20.00 0.00 0.33 0.17 0.02

结合以上输出结果,可以遵循如下标准来判断当前硬盘的读写(I/O)性能:

通常情况下 svctm 的大小和硬盘性能有关,其值小于 await。但需要注意的是,CPU、内存的负荷也会对 svctm 的值造成影响,过多的请求也会间接导致 svctm 值的增加。

await 值通常会受到 svctm、I/O 队列长度以及 I/O 请求模式的影响,如果 svctm 的值和 await 很接近,则表示几乎没有 I/O 等待,当前硬盘的性能很好;如果 await 的值远高于 svctm,则表示 I/O 队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。

%util 项也是衡量硬盘 I/O 性能的重要指标,即如果其值接近 100%,就表示硬盘产生的 I/O 请求太多,I/O 系统正在满负荷工作,长期这样会影响系统的性能。必要时,可以优化程序或者更换更大、更快的硬盘来解决这个问题。

Linux查看硬盘读写性能:iostat -d命令

通过执行 iostat -d 命令,也可以查看系统中硬盘的使用情况,如下是执行此命令的一个样例输出:

[root@localhost ~]# iostat -d 2 3

Linux 2.6.32-431.el6.x86_64 (localhost) 10/30/2019 _x86_64_ (8 CPU)

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

sda 5.29 337.11 9.51 13690

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

sda 1.00 8.00 16.00 16 32

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

sda 0.00 0.00 0.00 0 0

此输出结果中,我们重点看后面 4 列,它们各自表示的含义分别是:

Blk_read/s:表示每秒读取的数据块数;

Blk_wrtn/s:表示每秒写入的数据块数;

Blk_read:表示读取的所有块数;

Blk_wrtn:表示写入的所有块数。

注意,此输出结果中,第一次输出的数据是系统从启动以来直到统计时的所有传输信息,从第二次输出的数据开始,才代表在指定检测时间段内系统的传输值。

根据 iostat 命令的输出结果,我们也可以从中判断出当前硬盘的 I/O 性能。比如说,如果 Blk_read/s 的值很大,就表示当前硬盘的读操作很频繁;同样,如果 Blk_wrtn/s 的值很大,就表示当前硬盘的写操作很频繁。对于 Blk_read 和 Blk_wrtn 的大小,没有一个固定的界限,不同的系统应用对应值的范围也不同。但如果长期出现超大的数据读写情况,通常是不正常的,一定程度上会影响系统性能。

不仅如此,iostat 命令还提供了统计指定硬盘 I/O 状况的方法,即使用 -x 选项。例如:

[root@localhost ~]# iostat -x /dev/sda 2 3

Linux 2.6.32-431.el6.x86_64 (localhost) 10/30/2019 _x86_64_ (8 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

0.09 0.00 0.24 0.26 0.00 99.42

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util

sda 2.00 0.56 2.92 0.44 206.03 7.98 63.56 0.03 9.99 5.31 1.79

avg-cpu: %user %nice %system %iowait %steal %idle

0.31 0.00 0.06 0.00 0.00 99.62

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util

sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

avg-cpu: %user %nice %system %iowait %steal %idle

0.50 0.00 0.06 0.00 0.00 99.44

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util

sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

此输出结果基本和 sar -d 命令的输出结果相同,需要额外说明的几个选项的含义如下:

rrqm/s:表示每秒被合并的读操作数目(文件系统会对读取同一 block 块的请求进行合并)

wrqm/s:表示每秒被合并的写操作数目;

r/s:表示每秒完成读 I/O 设备的次数;

w/s:表示每秒完成写 I/O 设备的次数;

rsec/s:表示每秒读取的扇区数;

wsec/s:表示每秒写入的扇区数;

Linux查看硬盘读写性能:vmstat -d命令

使用 vmstat 命令也可以查看有关硬盘的统计数据,例如:

[root@bogon ~]# vmstat -d 3 2

disk- ————reads———— ————writes———– —–IO——

total merged sectors ms total merged sectors ms cur sec

sda 6897 4720 71458 1256 1475 21842 9838 0 43

disk- ————reads———— ————writes———– —–IO——

total merged sectors ms total merged sectors ms cur sec

sda 6897 4720 71458 1256 1475 21842 9838 0 43

该命令的输出结果显示了硬盘的读(reads)、写(writes)以及 I/O 的使用状态。

以上主要讲解了如何通过命令查看当前系统中硬盘 I/O 的性能,其实影响硬盘 I/O 的因素是多方面的,例如应用程序本身、硬件设计、系统自身配置等等。

要想解决硬盘 I/O 的瓶颈,关键是要提高 I/O 子系统的执行效率。比如说,首先从应用程序上对硬盘读写性能进行优化,能够放到内存中执行的操作尽量别保存到硬盘里(内存读写效率要远高于硬盘读写效率);其次,还可以对硬盘存储方法进行合理规划,选择合适的 RAID 存储方式;最后,选择适合自身应用的文件系统,必要时可以使用裸设备提高硬盘的读写性能。

在裸设备上,数据可以直接读写,不必经过操作系统级别的缓存,还可以避免文件系统级别的维护开销(文件系统需要维护超级块、I-node 块等)以及操作系统的 cache 预读功能(减少了 I/O 请求)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231068.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Qt/C++ 音乐播放器源码[通俗易懂]

    Qt/C++ 音乐播放器源码[通俗易懂]Qt5音乐播放器这是本人的第一条博客,排版什么的就将就看吧~一,我还在学生,学Qt来收获很大,至少是明白了Qt这些大大小小的问题1.播放器做的很累人,网上虽有源码,但都过分的简单且不美观。2.基于上述原因我才打算重新写个玩玩,以后在写程序的时候听着自己做的播放器放的歌,那是相当的苦中带乐啊!!二,好了下面讲如何实现吧1.先上几张最终效果图:换肤:…

    2022年5月22日
    59
  • java 常量接口

    java 常量接口接口当中也可以定义 成员变量 但是必须使用 publicstatic 三个关键字进行修饰 从效果上看 这其实就是接口的 常用 格式 publicstatic 数据类型常量名称 数据值 接口当中的常量 可以省略 publicstatic 接口中的常量 必须进行赋值 接口中常量的名称 使用大写的字母 publicinterf public

    2025年10月8日
    5
  • plotyy函数_Matlab plotyy函数的使用及问题总结「建议收藏」

    plotyy函数_Matlab plotyy函数的使用及问题总结「建议收藏」Matlabplotyy函数的使用及问题总结1.新建一个.m文件,文件名为plotyy.m,并为其填写代码如下:x=0:0.001:20;y1=200*exp(-0.05*x).*sin(x);y2=0.8*exp(-0.5*x).*sin(10*x);holdon;[AX,H1,H2]=plotyy(x,y1,x,y2,@plot);%获取坐标轴、图像句柄set(get(AX(1),’yl…

    2022年6月18日
    32
  • 如何删除LDSGameMaster「建议收藏」

    如何删除LDSGameMaster「建议收藏」如何删除LDSGameMaster背景介绍方法一方法二背景介绍最近不小心下载安装了鲁大师,卸载之后,C盘中仍有一个名为LDSGameMaster的文件夹。虽然很小,之后18M,但是一定要删除掉,否则心里很不舒服。方法一百度告诉我,解决这个问题很简单。这个文件夹中有个uninstall,运行之后就没有了。但我没有发现我的文件夹中有这么一个东西。这个方法不提。方法二删除之后,提示:操作无法…

    2022年6月13日
    34
  • 漫画:独立女性真的更讨人喜欢吗?

    今天给大家推荐一篇反套路的漫画 谁说女主都要是清纯白莲花? 《总裁想静静》 漫画已经完结,看起来更过瘾! 第一话 第二话 第三话 原文始发于微信公众号(全栈程序员社区):漫画:独立…

    2021年6月22日
    70
  • MySQL数据库笔记(三)

    MySQL数据库笔记(三)

    2021年7月10日
    77

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号