使用dd命令简单测试磁盘I/O

本文所有测试使用的均是Oracle公有云OCI上的计算实例的启动盘。

  • 第1轮测试使用的是默认的启动盘参数。
  • 第2轮测试使用的是自动调整的启动盘参数(如下图),性能更高。
    在这里插入图片描述

第1轮测试

顺序I/O

运行以下命令5次,dsync表示不使用cache:

dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=dsync

输出为:

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 7.83568 s, 137 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.65085 s, 124 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.66759 s, 124 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.70055 s, 123 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.68381 s, 124 MB/s

去掉偏差值,均值为124MB/s

运行以下命令5次:

dd if=/dev/zero of=/tmp/testfile bs=1G count=1

输出为:

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.458927 s, 2.3 GB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 7.45019 s, 144 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.34947 s, 129 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.33941 s, 129 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.35338 s, 129 MB/s

去掉偏差值,均值为129MB/s

随机I/O

运行以下命令5次,dsync表示不使用cache,bs的缺省单位为字节:

dd if=/dev/zero of=/tmp/testfile bs=512 count=1000 oflag=dsync

输出为:

512000 bytes (512 kB, 500 KiB) copied, 1.07545 s, 476 kB/s
512000 bytes (512 kB, 500 KiB) copied, 1.10118 s, 465 kB/s
512000 bytes (512 kB, 500 KiB) copied, 1.08686 s, 471 kB/s
512000 bytes (512 kB, 500 KiB) copied, 1.09063 s, 469 kB/s
512000 bytes (512 kB, 500 KiB) copied, 1.05815 s, 484 kB/s

均值为470kB/s

运行以下命令5次:

dd if=/dev/zero of=/tmp/testfile bs=512 count=1000

输出为:

512000 bytes (512 kB, 500 KiB) copied, 0.000962132 s, 532 MB/s
512000 bytes (512 kB, 500 KiB) copied, 0.00106197 s, 482 MB/s
512000 bytes (512 kB, 500 KiB) copied, 0.00101837 s, 503 MB/s
512000 bytes (512 kB, 500 KiB) copied, 0.00104263 s, 491 MB/s
512000 bytes (512 kB, 500 KiB) copied, 0.00097197 s, 527 MB/s

均值为500MB/s,有点夸张。

第2轮测试

所有的测试均使用oflag=dsync。

顺序I/O

运行以下命令5次,dsync表示不使用cache:

dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=dsync

输出为:

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 4.89465 s, 219 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.73426 s, 187 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.74953 s, 187 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.7962 s, 185 MB/s
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.76396 s, 186 MB/s

去掉偏差值,均值为186MB/s。可见付钱确实可以得到更好的服务。

随机I/O

运行以下命令5次:

dd if=/dev/zero of=/tmp/testfile bs=512 count=1000 oflag=dsync

输出为:

512000 bytes (512 kB, 500 KiB) copied, 1.10471 s, 463 kB/s
512000 bytes (512 kB, 500 KiB) copied, 1.06247 s, 482 kB/s
512000 bytes (512 kB, 500 KiB) copied, 1.08626 s, 471 kB/s
512000 bytes (512 kB, 500 KiB) copied, 1.07502 s, 476 kB/s
512000 bytes (512 kB, 500 KiB) copied, 1.08319 s, 473 kB/s

均值和第一轮的470kB/s相比,其实是差不多的。

一些结论

  • dd测试还是要加oflag=dsync选项,结果更准
  • dd命令记得指定count选项,特别是当输入是/dev/zero的时候,否则文件会无限生成下去
  • 对于本测试,磁盘性能调整后,顺序I/O提升明显,而随机I/O没有提升
  • 磁盘调整性能的开关记得关了,是会收费的

参考

  • Linux and Unix Test Disk I/O Performance With dd Command
  • Linux I/O Performance Tests using dd
  • dd(1) — Linux manual page

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络-组播数据转发原理

一、组播数据转发原理 前面已经学习了组播的基本概念和网络组成结构了,今天来学习下组播数据的转发。首先我们要先明确组播网络也是和单播一样需要网络可达的,因此也是需要单播网络支持的基础上配置组播转发数据。单播网络不通组播网络就没有意义了。 组…

链表——随机链表的复制

基于这篇文章算法的改进随机链表复制 这道题的关键在于完成链表复制后,如何修改random指针。即如何通过遍历原链表找到复制链表的结点。 过去的算法是修改原链表的next,让每个复制结点位于原链表结点后面。 但是,在C的STL库中,有应…

下载安装JavaFX及解决报错:缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序|Eclipse

目录 1.下载并解压 2.Eclipse配置 3.报错问题 解决方法1:将javaSE更改到9以下 解决方法2: 使用module-info.java配置解决 1.下载并解压 JavaFX下载地址:JavaFX - Gluon 选择合适自己电脑配置的sdk版本下载 打不开网页的参考这个博客&…

智能视频监控如何助力体育场馆安全管理:安防监控EasyCVR视频综合管理方案

近期有新闻报道,6月30日,17岁的中国国家羽毛球运动员在亚洲青年羽毛球锦标赛中,突然晕倒并抽搐,尽管被送往医院抢救,该运动员仍在当晚不幸离世。运动猝死不仅发生于职业运动员身上,在普通健身者中也时有发生…

5.opencv深浅拷贝

图像处理的复制操作 深浅拷贝 图像复制分成两种,第一种假复制,从原图片选择一部分图片拿出来观察,此时新生成的图片和原图实际上是同一张图片,即浅拷贝 将图片的一部分复制下来,放到新的内存中,即两张完全…

Tell Me Why:利用大型语言模型进行可解释的公共健康事实核查

Tell Me Why: Explainable Public Health Fact-Checking with Large Language Models 论文地址:https://arxiv.org/abs/2405.09454https://arxiv.org/abs/2405.09454 1.概述 最近的COVID-19大流行突显了公共健康领域事实核查的关键需求。在信息通过社交媒体平台迅速传播的时…

SpringMVC系列十二: 异常处理

异常处理 异常处理基本介绍局部异常应用实例Debug处理流程 全局异常应用实例Debug处理流程异常处理时: 局部异常 优先级高于 全局异常 自定义异常应用实例Debug处理流程 SimpleMappingExceptionresovler基本说明应用实例对未知异常进行统一处理异常处理的优先级梳理 上一讲, 我…

用ChatGPT辅助论文写作又怕学术造假?这样用就对了!

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 随着人工智能技术的发展,ChatGPT等语言模型在学术研究中的应用日益广泛。然而,在利用这些工具时,如何避免学术造假成为一个重要问题。学术造假不仅损…

flask、fastapi在服务器制作接口携参访问返回参数

flask创建接口: 一、安装python 官网下载Download Python | Python.org 二、安装flask 在选择的文件夹路径cmd调用bash安装 pip install Flask三、创建flask应用 # app.py from flask import Flask, request, jsonify app Flask(__name__) app.route(/ech…

Linux服务管理(二)DHCP/FTP服务

DHCP四部曲是指客户机请求IP、服务器响应、客户机选择IP以及服务器确定租约四个步骤的过程。这一系列过程共同构成了DHCP客户机动态获取IP地址的完整流程。下面将详细解读这一过程的每个阶段: 客户机请求IP:也称为DHCPDISCOVER,当一个DHCP客户…

ESXi6.7 update 3主机实现新硬件运行老环境

server 2003 SQL server 2000 SQL SP4 vmware tools 一、适用场景 1、运行多年的老企业,积累的数据量庞大,其中的数据库并不一定都是现在开发的平台或系统,而是已经正在运行,不能停业务的状态。 2、老系统老应用平台&#xf…

IT数据从业人员必读好物——最新发布物开放免费下载!

如今,越来越多的企业开始重视IT在业务中的作用,并寻求通过数字化转型来提升竞争力,且趋向于采用敏捷、灵活的方法来适应快速变化的市场需求。 本月精选发布物,正是为企业的IT管理提供了一个全面的标准化框架,帮助企业系…

如何确保工业展厅设计既专业又吸引?三原则详解!

工业是民族发展的基石,它为我们带来了无数的便利和进步,而为了让更多人了解这个至关重要的产业,以及其背后的技术和产品,许多工业性质的企业都致力于通过互动投影、虚拟现实、全息投影等多媒体技术,来打造独具特色的工…

vue-virtual-scroller-展示大量数据列表-虚拟列表展示优化

安装 -演示 npm i vue-virtual-scrolleryarn add vue-virtual-scrollervue-virtual-scroller 是一个 Vue 组件库,用于高效地渲染大量数据项,通过虚拟滚动来提升性能。它适用于长列表、网格、表格等场景 引入组件 Vue 项目中引入并注册 vue-virtual-scroller 组件。你可以在全…

@金融安全专业人士和风险管理决策者,必读白皮书现开放免费下载!

加快建设金融强国,是中国经济长远发展的战略抉择,更是在经济全球化进程中维护国际金融安全的重要举措,而防控金融风险是建设金融强国的重要保障。 本月最新发布物,聚焦「安全」主题,尤其为金融行业的安全专家&#xff…

『C++成长记』string模拟实现

🔥博客主页:小王又困了 📚系列专栏:C 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ ​ 目录 一、存储结构 二、默认成员函数 📒2.1构造函数 📒2.…

尚品汇-(十二)

(1)数据库表结构 根据以上的需求,以此将SKU关联的数据库表结构设计为如下: base_attr_value:前面学的平台属性值表 我们进行关联,可以从分类导向平台,通过平台过滤商品 (2&#xf…

MySQL—统计函数和数学函数以及GROUP BY配合HAVING

合计/统计函数 count -- 演示 mysql 的统计函数的使用 -- 统计一个班级共有多少学生? SELECT COUNT(*) FROM student -- 统计数学成绩大于 90 的学生有多少个? SELECT COUNT(*) FROM student WHERE math > 90 -- 统计总分大于 250 的人数有多少&…

【SpringCloud应用框架】Nacos命名空间、分组和DataID三者关系

第五章 Spring Cloud Alibaba Nacos之命名空间、分组和DataID三者关系 文章目录 一、名词解释三者关系 二、切换不同环境DataID方案Group方案Namespace空间方案 一、名词解释 命名空间(Namespace) ​用于进行租户粒度的配置隔离。不同的命名空间下&…

GraphRAG

什么是RAG? RAG 是一种自然语言查询方法,用于通过外部知识增强现有的LLM,因此如果问题需要特定知识,问题的答案会更相关。它包括一个检索信息组件,用于从外部源获取附加信息,也称为“基础上下文”&#xf…