当前位置: 首页 > news >正文

Linux 测试磁盘读写速度

1、先熟悉两个特殊的设备:

    (1)/dev/null:回收站、无底洞。
    (2)/dev/zero:产生字符。

2、测试磁盘写能力

time dd if=/dev/zero of=/testw.dbf bs=4k count=100000

        因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。命令结尾添加oflag=direct将跳过内存缓存,添加oflag=sync将跳过hdd缓存。

3、测试磁盘读能力

time dd if=/dev/sdb of=/dev/null bs=4k

    因为/dev/sdb是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb上,也相当于测试磁盘的读能力。(Ctrl+c终止测试)

4、测试同时读写能力

time dd if=/dev/sdb of=/testrw.dbf bs=4k

    在这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb是读,对/testrw.dbf是写),假设它们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。
 

方法一:使用dd命令

dd命令是一个用于复制文件和数据的常用工具,也可以用于测试存储/磁盘I/O性能。以下是使用dd命令测试存储/磁盘I/O性能的步骤:

打开终端窗口。
运行以下命令以测试磁盘的写入性能:

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

该命令会创建一个名为testfile的1GB文件,并将零值数据写入该文件。通过使用oflag=direct参数,可以绕过操作系统缓存,直接测试磁盘的写入性能。

等待命令执行完成。在完成后,dd命令将显示写入的数据量、所用的时间和写入速度等信息。
接下来,您可以运行以下命令以测试磁盘的读取性能:

dd if=testfile of=/dev/null bs=1G count=1 iflag=direct

该命令将从先前创建的testfile文件中读取数据,并将其传输到/dev/null设备中。同样使用iflag=direct参数,绕过操作系统缓存进行直接读取性能测试。

等待命令执行完成。在完成后,dd命令将显示读取的数据量、所用的时间和读取速度等信息。
通过分析dd命令的输出结果,您可以得到磁盘的写入和读取性能指标。

方法二:使用fio工具

fio是一个功能强大的存储性能测试工具,可以模拟不同类型的I/O负载,并提供详细的性能统计信息。以下是使用fio工具测试存储/磁盘I/O性能的步骤:

  1. 打开终端窗口。

  2. 安装fio工具。可以使用包管理器(如yum或apt)安装fio工具。例如,在CentOS上,可以运行以下命令进行安装:

    sudo yum install fio

    在安装完成后,您可以继续进行下一步的测试。

  3. 创建一个fio配置文件,例如io_test.fio,并使用文本编辑器打开它:

    vi io_test.fio

    在打开的文件中,添加以下内容以定义测试的参数和负载类型:

[global]
ioengine=libaio
direct=1
runtime=60
time_based[job]
filename=/path/to/testfile
bs=4k
size=1G
rw=randread
numjobs=1

        在上述配置中,您可以根据需要进行调整。filename表示测试使用的文件路径,bs表示块大小,size表示测试数据的大小,rw表示读写模式(这里设置为随机读取),numjobs表示并发作业数量。

  1. 保存并关闭文件。
  2. 运行以下命令以执行fio测试:
    fio io_test.fio
    fio将根据配置文件执行测试,并在测试结束后显示详细的性能统计信息。

通过分析fio测试结果中的吞吐量、IOPS和延迟等指标,您可以了解磁盘的读写性能。

方法三:使用bonnie++工具

bonnie++是另一个流行的存储性能测试工具,可以测试文件系统的吞吐量、文件操作速度和并发性能等指标。以下是使用bonnie++工具测试存储/磁盘I/O性能的步骤:

  1. 打开终端窗口。
  2. 安装bonnie++工具。可以使用包管理器(如yum或apt)安装bonnie++。例如,在CentOS上,可以运行以下命令进行安装:
    sudo yum install bonnie++
  3. 创建一个测试目录,并进入该目录:
    mkdir bonnie_test && cd bonnie_test
  4. 运行以下命令以执行bonnie++测试:
    bonnie++
    bonnie++将在当前目录下执行测试,并显示各项性能指标,如文件写入速度、文件读取速度、随机文件创建速度等。

通过分析bonnie++测试结果,您可以获取磁盘I/O性能的详细信息。

结论

通过测试存储/磁盘I/O性能,我们可以了解Linux机器的磁盘读写速度、延迟和吞吐量等关键指标。本文介绍了使用dd命令、fio工具和bonnie++工具进行存储/磁盘I/O性能测试的方法。无论是简单的测试还是更复杂的负载测试,这些方法都可以帮助您评估系统的存储性能和优化存储子系统。

请记住,在进行存储/磁盘I/O性能测试时,始终小心操作并遵循以下几点注意事项:

在执行性能测试之前,确保没有重要的数据存储在正在测试的磁盘上,以防数据丢失或损坏。
仔细选择测试工具和测试参数,以确保测试适合您的需求和环境。
在测试期间,监控系统资源使用情况,特别是CPU、内存和磁盘的利用率,以避免超负荷情况发生。
运行多次测试,并计算平均值,以获得更准确的性能指标。
对于更复杂的负载测试,可以使用专业的性能测试工具和方法来模拟真实的工作负载和场景。
通过合理选择测试方法和正确解读测试结果,您可以深入了解Linux机器中的存储/磁盘I/O性能,并根据需要进行优化和调整。

相关文章:

Linux 测试磁盘读写速度

1、先熟悉两个特殊的设备: (1)/dev/null:回收站、无底洞。 (2)/dev/zero:产生字符。 2、测试磁盘写能力 time dd if/dev/zero of/testw.dbf bs4k count100000 因为/dev//zero是一个伪设备…...

【YOLOv8】Yolov5和Yolov8网络结构的分析与对比

目录 一 YOLOv5 二 YOLOv8 yolo通常采用backbone-neck-head的网络结构。 Backbone 主要负责从输入图像中提取高层次的语义特征,常包含多个卷积层和池化层,构建了一个深层次的特征提取器。Neck通常用来进一步整合与调整backbone提取的特征,有利于将不同…...

无人机低空数字摄影测量系统

一、 系统概述 系统完全基于IDL设计实现,包括界面布局到人机交互再到底层核心函数功能。整体设计框架基于数字摄影测量的专业处理流程,实现了数据输入、数据预处理、影像信息检测、空间定向、地形三维建模、专题信息提取、成果输出与更新等功能。同时为…...

Disk Drill Enterprise for Mac v5.5.1515数据恢复软件中文版

Disk Drill 是 Mac 操作系统固有的Mac数据恢复软件:使用 Recovery Vault 轻松保护文件免遭意外删除,并从 Mac 磁盘恢复丢失的数据。支持大多数存储设备,文件类型和文件系统。 软件下载:Disk Drill Enterprise for Mac v5.5.1515激…...

day55 最长递增子序列 最长连续递增子序列 最长重复子数组

题目1 300 最长递增子序列 题目链接 300 最长递增子序列 题意 找到整数数组nums的最长严格递增子序列的长度(子序列并不改变原始的顺序,但是可以删除元素) 动态规划 动规五部曲 1)dp数组及下标i的含义 dp[i] 表示以nums[i…...

使用Springboot配置生产者、消费者RabbitMQ?

生产者服务 1、引入依赖以及配置rabbitmq 此时我们通过使用springboot来快速搭建一个生产者服务 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> applica…...

代码随想录算法训练营第46天|139.单词拆分、多重背包问题

139.单词拆分 题目链接&#xff1a;单词拆分 题目描述&#xff1a;给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 **注意&#xff1a;**不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词…...

数组与伪数组的区别

大家都知道&#xff0c;在js中使用 document.querySelectorAll(选择器&#xff09;获取到的为该选择器能选择到的所有元素组成的伪数组&#xff0c;所谓伪数组&#xff0c;就是外表和数组一样&#xff0c;能够使用索引遍历&#xff0c;但本质是对象。 数组与伪数组之间的区别&…...

Java集合List

List特有方法 经典多态写法 // 经典的多态写法 List<String> list new ArrayList<>();常用API&#xff1a;增删改查 // 添加元素 list.add("Java"); // 添加元素到指定位置 list.add(0, "Python");// 获取元素 String s list.get(0);// 修改…...

elasticsearch基础命令

1 字段分词分析: GET /store_info_data/_analyze {"field": "storeName","text":"20pilapala0" }2 精确查找,去除评分 GET /store_info_data/_search {"query": {"constant_score": {"filter": {&quo…...

Capture One 23 Enterprise for Mac中文版 全面的图像处理工具

Capture One 23 Enterprise for Mac中文版一款专业的图像编辑和管理软件&#xff0c;具备强大的功能和工具&#xff0c;适用于摄影师、摄影工作室和专业用户。 软件下载&#xff1a;Capture One 23 Enterprise for Mac中文版下载 该软件为用户提供了全面的图像处理工具&#xf…...

Qt案例 通过调用Setupapi.h库实现对设备管理器中设备默认驱动的备份

参考腾讯电脑管家-软件市场中的驱动备份专家写的一个驱动备份软件案例&#xff0c;学习Setupapi.h库中的函数使用.通过Setupapi.h库读取设备管理器中安装的设备获取安装的驱动列表&#xff0c;通过bit7z库备份驱动目录下的所有文件. 目录导读 实现效果相关内容示例获取SP_DRVIN…...

如何理解JVM

JVM&#xff08;Java虚拟机&#xff09;是Java程序的运行环境&#xff0c;它是Java技术的核心组成部分之一。理解JVM涉及到以下几个方面的内容&#xff1a; 1. **虚拟机概念**&#xff1a;虚拟机是一种软件实体&#xff0c;它在物理计算机上模拟出一个计算机系统&#xff0c;使…...

第十四讲:C语言字符函数和字符串函数

目录 1. 字符分类函数 2、字符转换函数 3. strlen的使⽤和模拟实现 4. strcpy 的使⽤和模拟实现 5. strcat 的使⽤和模拟实现 6. strcmp 的使⽤和模拟实现 7. strncpy 函数的使⽤ 8. strncat 函数的使⽤ 9. strncmp函数的使⽤ 10. strstr 的使⽤和模拟实现 11. strt…...

华为海思2024春招数字芯片岗机试题(共9套)

huawei海思2024春招数字芯片岗机试题(共9套&#xff0c;有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;WX:didadidadidida313&#xff0c;加我备注&#xff1a;CSDN huawei数字题目&#xff0c;谢绝白嫖哈&#xff09…...

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测 目录 分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述…...

与机器对话:ChatGPT 和 AI 语言模型的奇妙故事

原文&#xff1a;Talking to Machines: The Fascinating Story of ChatGPT and AI Language Models 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 从 ELIZA 到 ChatGPT&#xff1a;会话式人工智能的简史 会话式人工智能是人工智能&#xff08;AI&#xff09;的一个分…...

概率论基础——拉格朗日乘数法

概率论基础——拉格朗日乘数法 概率论是机器学习和优化领域的重要基础之一&#xff0c;而拉格朗日乘数法与KKT条件是解决优化问题中约束条件的重要工具。本文将简单介绍拉格朗日乘数法的基本概念、应用以及如何用Python实现算法。 1. 基本概念 拉格朗日乘数法是一种用来求解…...

[xboard]real6410-6.2 移植kernel网络驱动

文章目录 硬件电路软件配置问题1问题2问题3问题4功能测试硬件电路 核心板,使用DM9000A [图片] 软件配置 问题1 / # / # ifconfig ifconfig: /proc/net/dev: No such file or directory ifconfig: socket: Fun...

Quarkus初探

Quarkus初探 背景安装Quarkus安装Quarkus CLI 创建Quarkus项目运行Quarkus初探代码修改一下代码 数据持久化创建PanacheEntiry写入数据读取数据 Dev Service使用外部数据库区分dev和prod 构建native应用&#xff08;依赖Graalvm&#xff09; 背景 最早是在Infoq上了解到Quarku…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...