当前位置:首页 > Linux技术 > 正文内容

Centos测试磁盘读写性能

邓鹏11个月前 (06-06)Linux技术4326

测试命令

#使用dd命令创建一个1G的文件,建议可以设置10000次,更好的观察。
dd if=/dev/zero of=testfile bs=1M count=1000 conv=fdatasync
#使用yum install iotop -y 命令安装,这里查看磁盘吞吐速度
iotop
#测试磁盘的iops工具,使用yum install fio -y 命令安装
fio --name=random-read --ioengine=libaio --rw=randread --bs=4k --iodepth=64 --size=1G --runtime=30s --direct=1 --group_reporting
#测试iops写性能
fio --name=write-test --ioengine=libaio --rw=write --bs=4k --iodepth=64 --size=1G --runtime=30s --direct=1 --group_reporting

dd命令介绍

这个命令的各个参数含义如下:

  1. if=/dev/zero:if 参数指定了输入文件,这里使用了特殊设备 /dev/zero,它会不断输出 0。

  2. of=testfile:of 参数指定了输出文件,这里将数据写入到名为 testfile 的文件中。

  3. bs=1M:bs 参数指定了每次 I/O 操作的块大小,这里设置为 1MB。

  4. count=1000:count 参数指定了要写入的块数量,这里设置为 1000,意味着总共写入 1000 个块,即 1GB。

  5. conv=fdatasync:conv 参数指定了数据写入到文件后执行的同步操作,fdatasync 表示等待数据真正写入磁盘后再返回。

  6. 执行这条命令后,dd 将会持续地将随机数据写入 testfile 文件中,每次写入一个 1MB 的块,直到总共写入了 1GB 的数据为止。这样就可以进行持续的写入测试。

请注意:这样的测试可能会对磁盘产生较大的负载,请谨慎使用,尤其是在生产环境中。确保在进行测试前备份好重要数据,并且避免在正在使用的文件系统上执行此操作。

iotop命令介绍

iotop 的输出中,每一行代表一个进程的磁盘 I/O 活动情况。以下是一条 iotop 输出的示例数据以及其各个参数的含义:


  1. Total DISK READ:显示所有进程总共从磁盘读取的数据量,以每秒字节数 (B/s) 的形式显示。

  2. Total DISK WRITE:显示所有进程总共写入到磁盘的数据量,以每秒字节数 (B/s) 的形式显示。

  3. Actual DISK READ:显示实际磁盘读取速率,以每秒字节数 (B/s) 的形式显示。

  4. Actual DISK WRITE:显示实际磁盘写入速率,以每秒字节数 (B/s) 的形式显示。

  5. PID:进程 ID。

  6. PRIO:进程优先级。

  7. USER:拥有该进程的用户。

  8. DISK READ:该进程从磁盘读取的数据量,以每秒字节数 (B/s) 的形式显示。

  9. DISK WRITE:该进程写入到磁盘的数据量,以每秒字节数 (B/s) 的形式显示。

  10. SWAPIN:该进程在交换空间中交换的数据量。

  11. IO>:进程的 I/O 活动百分比,即进程的 I/O 占总 I/O 的百分比。

  12. COMMAND:进程名称。

image.png

fio命令介绍

fio --name=random-read --ioengine=libaio --rw=randread --bs=4k --iodepth=64 --size=1G --runtime=30s --direct=1 --group_reporting

如下为执行命令后输出的结果截图,读性能

image.png

fio --name=write-test --ioengine=libaio --rw=write --bs=4k --iodepth=64 --size=1G --runtime=30s --direct=1 --group_reporting

如下为执行命令后输出的结果截图,写性能

image.png

这个 fio 测试的输出提供了许多关于磁盘 IOPS、延迟、吞吐量等性能指标的信息。上图信息参数说明如下:

  1. random-read: 这是测试任务的名称。

  2. (g=0): 表示这个任务所属的组号。

  3. rw=randread: 指定了测试中执行的操作,这里是随机读取(random read)。

  4. bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B: 指定了读、写和总体操作的块大小。在这个测试中,读、写和总体操作的块大小都是 4KB。

  5. ioengine=libaio: 指定了使用的 I/O 引擎,这里使用了异步 I/O 引擎 libaio。

  6. iodepth=64: 指定了每个线程的 I/O 操作队列深度。

  7. size=1G: 指定了要读取的数据大小,这里是 1GB。

  8. runtime=30s: 指定了测试运行的时间,这里是 30 秒。

  9. direct=1: 表示使用直接 I/O,即绕过文件系统缓存。

  10. group_reporting: 表示对所有线程的结果进行汇总报告。

下面是测试结果的解释:

  1. IOPS: 表示每秒钟的 I/O 操作数。在这个测试中,读取操作的平均 IOPS 是 26.4k,即每秒约有 26400 次读取操作。

  2. BW: 表示带宽,即数据传输速率。这里是 103MB/s,表示每秒传输了 103MB 的数据。

  3. slat (nsec): 表示起始延迟,即发起 I/O 请求到开始执行的延迟。包括最小值、最大值、平均值和标准差。

  4. clat (usec): 表示完成延迟,即发起 I/O 请求到完成的延迟。包括最小值、最大值、平均值和标准差。

  5. lat (usec): 表示总体延迟,包括起始延迟和完成延迟。

  6. lat percentiles (usec): 表示延迟的百分位数,例如第 50 百分位数表示 50% 的 I/O 操作的延迟小于等于该值。

  7. bw (KiB/s): 表示带宽的详细信息,包括最小值、最大值、平均值和标准差。

  8. iops: 表示 IOPS 的详细信息,包括最小值、最大值、平均值和标准差。

  9. lat (usec): 表示延迟的详细信息,包括各个延迟区间的占比。

  10. cpu: 表示 CPU 使用情况,包括用户态 CPU 使用率、内核态 CPU 使用率等。

  11. IO depths: 表示 I/O 操作的队列深度分布情况。

  12. issued rwts: 表示发出的读取和写入请求数量。

  13. latency: 表示延迟的详细信息,包括目标延迟、窗口大小、百分位数和队列深度。

  14. Run status group 0 (all jobs): 表示整个测试任务组的运行状态。

  15. READ: 表示读取操作的性能指标。

  16. Disk stats (read/write): 提供了磁盘的统计信息,包括读取的 I/O 操作数、合并的 I/O 操作数、磁盘 ticks、队列中的 I/O 操作数以及磁盘的利用率。

扫描二维码推送至手机访问

版权声明:本文由PowerShell中文社区发布,如需转载请注明出处。

本文链接:https://www.powershell.com.cn/?id=152

标签: 磁盘

“Centos测试磁盘读写性能” 的相关文章

CentOS 7上查看CPU和内存使用率

CentOS 7上查看CPU和内存使用率

    在 CentOS 7 中,查看系统 CPU 和内存使用率常用的命令有 top, vmstat, free,pidstat。这些命令提供了不同层面的资源使用信息,帮助你了解系统的性能状况。    如下是做了一个表格...

CentOS 7 网络设置教程:简单易懂的 IP 地址配置方法

CentOS 7 网络设置教程:简单易懂的 IP 地址配置方法

1 在CentOS 7中配置IP地址时,需要注意以下几个方面:确定网卡名称:首先,你需要知道你的网卡名称。在CentOS 7中,你可以使用ip addr或ifconfig命令来查看你的网卡名称。例如,网卡名称可能是ens33、ens36或其他类似的名称,注意:虚拟机添加一个新网络适配器后,可能不产生...

Centos7系统压缩及解压文件方法

Centos7系统压缩及解压文件方法

1 Centos7系统解压工具介绍:1 内置解压工具:1. tar:tar命令是Linux系统中的标准归档工具,用于创建和提取.tar文件。它可以将多个文件或目录打包成一个单独的文件,并保持原始文件的权限和属性。tar文件没有经过压缩,因此文件大小不会减小。2. gzip:gzip是Linux系统中...

Centos7配置yum源详细教程

Centos7配置yum源详细教程

1 Centos的Yum源介绍YUM(Yellowdog Updater, Modified)是CentOS 7中一款重要的包管理工具,它让你轻松管理系统上的软件包。通过YUM,你可以方便地搜索、安装、更新和删除软件包,而无需手动处理依赖关系。YUM源是存储软件包及其信息的在线存储库,它们位于特定的...

VMware Workstation一键Docker部署私有网盘教程

VMware Workstation一键Docker部署私有网盘教程

企业私有网盘介绍:数据安全:私有网盘可提供更高级别的数据加密和安全防护,确保隐私和敏感数据不被未经授权的人员访问或泄露。数据控制和定制化:私有网盘能够提供更灵活的数据管理和定制化服务,满足企业特定的业务需求,提升工作效率和数据管理水平。避免第三方风险:部署私有网盘可以降低对第三方服务的依赖,减少数据...

frp内网穿透部署详细教程

frp内网穿透部署详细教程

Frp内网穿透介绍Frp 可以帮助用户将位于内网的服务、应用程序或设备暴露到公网上,使外部用户可以通过互联网访问这些内网资源。这在需要远程访问内网服务或搭建私有云时非常有用。第一步:准备工具一台Centos7客户端或widnows客户端一台具有公网IP的云服务,用于代理转发Frp软件:Centos7...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。