linux测试磁盘读写能力

在平时的工作中,经常需要评估一些服务器的资源,磁盘IO是其中一个容易出现瓶颈的地方,那么我们通常需要预先知道该服务器上的磁盘IO能达到多少。在这里记录一下经常用到的一个用来测试磁盘读写能力的命令。

1. dd命令

dd 命令从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

主要参数说明:

  • if 指定读取的文件路径
  • of 指定输出的文件路径
  • bs 传输的每个数据块的大小
  • count 传输的数据块的数量
  • oflag/iflag=direct 表示测试时不使用cache,而是直接读写磁盘

测试磁盘的读性能

time dd if=test.file of=/dev/null  bs=2048 count=500000 iflag=direct

在这里插入图片描述

测试磁盘的写性能

time dd of=test.file if=/dev/zero  bs=2048 count=500000 oflag=direct

在这里插入图片描述
可以看到:加缓存和不加缓存标志的写速率差别很大。

/dev/null与/dev/zero的区别

  • /dev/null类似于一个“黑洞”,所有写入它的数据都会被“吃掉”,不占用磁盘空间;我们经常再重定向的时候使用它。
  • /dev/zero也是一个伪设备,可以用于向设备或文件写入字符串0。

2. sar命令

如果说dd命令是用来测磁盘IO的极限的话,那么sar命令就是用来查看当前磁盘IO的性能(不止可以测磁盘,还可以用来查看其它硬件的性能,后面有时间整理个全的)。

参数说明

  • -d参数代表查看磁盘性能
  • -p参数代表将 dev 设备按照 sda,sdb……名称显示,
  • 第一数字代表每隔多少秒采一次数值
  • 第二个数字代表总共采多少次数值

返回值说明

  • tps:每秒从物理磁盘I/O的次数
  • rd_sec/s:每秒读扇区的次数(一般情况下一个扇区的大小是512字节)
  • wr_sec/s:每秒写扇区的次数
  • avgrq-sz:平均每次设备I/O操作的数据大小(扇区)
  • avgqu-sz:磁盘请求队列的平均长度
  • await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒)
  • svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
  • %util:I/O请求占CPU的百分比,比率越大,说明越饱和
    在这里插入图片描述

3. iostat命令

iostat命令与sar的使用类似,不过主要是用来测量磁盘IO性能的,没有sar的功能那么丰富。

基本用法:iostat [ 选项 ] [ <时间间隔> [ <次数> ]]
主要选项:
-c:只显示系统CPU统计信息,即单独输出avg-cpu结果,不包括device结果
-d:单独输出Device结果,不包括cpu结果
-k/-m:输出结果以kB/mB为单位,而不是以扇区数为单位
-x:输出更详细的io设备统计信息
interval/count:每次输出间隔时间,count表示输出次数,不带count表示循环输出

在这里插入图片描述

  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用`dd`命令来测试磁盘读写速度。格式如下: ``` dd if=/dev/zero of=test bs=1M count=1024 conv=fdatasync ``` 其中`if`参数代表读取的文件,`of`参数代表写入的文件,`bs`参数代表每次读写的块大小,`count`参数代表读写的块数,`conv`参数代表执行的转换。 执行上述命令后,终端会输出读写速度的信息。 ### 回答2: 在 Linux 中,可以使用工具来查看磁盘的读写速度。通常使用的工具有 iostat、vmstat 和 sar。 其中,iostat 是一个最常用的工具之一。它可以用来查看每个磁盘的读写速度、I/O 请求数等信息。此外,它还可以用来查看系统整体的 CPU、内存、网络和交换分区等性能指标。 iostat 的用法如下: iostat -dx 5 其中 -x 选项表示显示每个磁盘的详细信息,-d 选项表示每隔 5 秒更新一次数据。输出类似下面的结果: Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.03 73.09 0.53 39.61 0.00 0.15 8.14 0.00 0.05 0.05 0.05 0.02 0.09 其中,rMB/s 表示每秒读取的数据量,wMB/s 表示每秒写入的数据量,%util 表示磁盘的利用率。可以根据这些数据来评估磁盘的性能。 另外,vmstat 和 sar 也可以用来查看磁盘的读写速度,它们的输出结果更加详细。vmstat 可以实时监控系统的各项资源使用情况,而 sar 可以生成历史数据报告,并可用于性能分析和故障排除。 综上所述,Linux 中有多种工具可以用来查看磁盘的读写速度,可以根据实际需要选择合适的工具,以便更好地监控和评估系统性能。 ### 回答3: Linux是一款开源的操作系统,它的优势在于灵活性和高效性。对于Linux系统中的磁盘读写速度,我们可以通过多种方法进行查看。 一、使用iostat命令查看磁盘读写速度 Iostat命令是Linux系统中一个常用的工具,可以用来显示CPU,磁盘,内存,网络等信息。通过检查磁盘的I/O活动,我们可以确定磁盘的性能瓶颈所在。 iostat -dkx 1:该命令会每秒钟显示一次所有磁盘的读写速度及其相关参数信息。 其中: -d 表示查看磁盘的读写统计信息 -k 表示数据单位为KB -x 表示查看磁盘的详细信息 ii)使用iotop命令查看磁盘读写速度 Iotop是一个交互式实时磁盘I/O工具,可以显示进程和文件在磁盘上的I/O速度。我们可以使用Iotop来查看磁盘上具体执行了那些操作,以及哪些进程占用了大量的磁盘I/O资源。 # iotop --only:只显示磁盘I/O比较高的进程 # iotop --batch --time=10 --only:按顺序显示磁盘I/O比较高的进程 其中– batch表示无需交互, – only表示只显示I/O比较高的进程信息。 综上所述,如果我们想获取Linux系统中磁盘的读写速度,可以使用iostat和iotop命令来查看具体的统计信息和进程耗用的磁盘I/O资源,进而找到磁盘读写性能的瓶颈,并进行调整和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普普通通程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值