Ubuntu 下测试 NVME SSD 的读写速度

在 Ubuntu 系统下,测试 NVME SSD 的读写速度,有好多种方法,常用的有如下几种:

1. Gnome-disks

Gnome-disks(也称为“Disks”)是 GNOME 桌面环境中的磁盘管理工具,有图形界面,是测试 NVME SSD 读写速度操作最方便的一种。

可以通过以下方式安装:

    sudo apt update
    sudo apt install gnome-disk-utility

安装完成后,从 Settings 选择 Disks,打开该应用。

也可以在 Run Programm 下键入 gnomes-disks 直接运行:

在左侧的设备列表中选择你的固态硬盘,然后点击右上角的菜单图标(三个竖点),选择 "Benchmark Disk" 来进行速度测试。 

下面是一个 128GB SSD 的测试结果:

作为对比,这是 一张 64GB SD 卡的结果,看起来性能比较差:

另一张 SD 卡:

2. hdparm

当然,也可以使用 hdparm 来测试去读取速度:

        sudo apt-get install hdparm

        sudo hdparm -Tt /dev/mmcblk0

/dev/mmcblk0:Timing cached reads:   9082 MB in  2.00 seconds = 4546.07 MB/secHDIO_DRIVE_CMD(identify) failed: Invalid argumentTiming buffered disk reads:  36 MB in  3.11 seconds =  11.57 MB/sec

        sudo hdparm -Tt /dev/nvme0n1

/dev/nvme0n1:Timing cached reads:   9754 MB in  2.00 seconds = 4882.31 MB/secHDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for deviceTiming buffered disk reads: 1056 MB in  3.00 seconds = 351.64 MB/sec

3. fio

fio 是一个功能强大的磁盘性能测试工具,可以执行各种读取和写入测试,并提供详细的性能报告。

可以使用以下命令安装 fio:

        sudo apt update    
        sudo apt install fio

安装完成后,创建一个配置文件,例如:test_ssd.fio,并在其中定义测试的参数。

    [global]ioengine=libaiodirect=1runtime=60time_basedbs=4knumjobs=1size=1G[test_ssd_read]filename=/dev/nvme0n1rw=read[test_ssd_write]filename=/dev/nvme0n1rw=write[test_ssd_randrw]filename=/dev/nvme0n1rw=randrw

然后,在终端中运行以下命令来执行测试:

        sudo fio test_ssd.fio

test_ssd_read: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
test_ssd_write: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
test_ssd_randrw: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.16
Starting 3 processes
Jobs: 3 (f=3): [R(1),W(1),m(1)][100.0%][r=40.2MiB/s,w=81.1MiB/s][r=10.3k,w=20.8k IOPS][eta 00m:00s]
test_ssd_read: (groupid=0, jobs=1): err= 0: pid=11250: Mon Jan  6 13:43:18 2025read: IOPS=6125, BW=23.9MiB/s (25.1MB/s)(1436MiB/60001msec)slat (usec): min=3, max=7732, avg=14.71, stdev=30.46clat (nsec): min=1750, max=23628k, avg=144762.35, stdev=177571.14lat (usec): min=37, max=23643, avg=160.05, stdev=180.14clat percentiles (usec):|  1.00th=[   52],  5.00th=[   55], 10.00th=[   66], 20.00th=[   73],| 30.00th=[   79], 40.00th=[  104], 50.00th=[  125], 60.00th=[  141],| 70.00th=[  163], 80.00th=[  192], 90.00th=[  262], 95.00th=[  306],| 99.00th=[  367], 99.50th=[  392], 99.90th=[ 3458], 99.95th=[ 3720],| 99.99th=[ 5866]bw (  KiB/s): min=22280, max=25600, per=58.79%, avg=24492.71, stdev=542.05, samples=119iops        : min= 5570, max= 6400, avg=6123.14, stdev=135.51, samples=119lat (usec)   : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.19%lat (usec)   : 100=38.84%, 250=49.97%, 500=10.75%, 750=0.04%, 1000=0.02%lat (msec)   : 2=0.04%, 4=0.11%, 10=0.02%, 20=0.01%, 50=0.01%cpu          : usr=5.19%, sys=16.83%, ctx=367841, majf=0, minf=18IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%issued rwts: total=367511,0,0,0 short=0,0,0,0 dropped=0,0,0,0latency   : target=0, window=0, percentile=100.00%, depth=1
test_ssd_write: (groupid=0, jobs=1): err= 0: pid=11251: Mon Jan  6 13:43:18 2025write: IOPS=16.3k, BW=63.7MiB/s (66.8MB/s)(3820MiB/60001msec); 0 zone resetsslat (usec): min=3, max=1150, avg=13.95, stdev= 2.73clat (nsec): min=1167, max=3738.0k, avg=43920.67, stdev=12785.94lat (usec): min=28, max=3742, avg=58.42, stdev=13.36clat percentiles (usec):|  1.00th=[   41],  5.00th=[   41], 10.00th=[   42], 20.00th=[   42],| 30.00th=[   42], 40.00th=[   43], 50.00th=[   43], 60.00th=[   43],| 70.00th=[   44], 80.00th=[   46], 90.00th=[   48], 95.00th=[   51],| 99.00th=[   60], 99.50th=[   65], 99.90th=[  114], 99.95th=[  174],| 99.99th=[  326]bw (  KiB/s): min=62512, max=69112, per=79.17%, avg=65189.33, stdev=725.54, samples=119iops        : min=15628, max=17278, avg=16297.32, stdev=181.38, samples=119lat (usec)   : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.01%, 50=93.90%lat (usec)   : 100=5.97%, 250=0.10%, 500=0.01%, 750=0.01%, 1000=0.01%lat (msec)   : 2=0.01%, 4=0.01%cpu          : usr=13.82%, sys=39.91%, ctx=977956, majf=0, minf=13IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%issued rwts: total=0,978007,0,0 short=0,0,0,0 dropped=0,0,0,0latency   : target=0, window=0, percentile=100.00%, depth=1
test_ssd_randrw: (groupid=0, jobs=1): err= 0: pid=11252: Mon Jan  6 13:43:18 2025read: IOPS=4290, BW=16.8MiB/s (17.6MB/s)(1006MiB/60001msec)slat (usec): min=3, max=4648, avg=14.43, stdev=20.50clat (usec): min=2, max=8482, avg=142.87, stdev=154.52lat (usec): min=29, max=8497, avg=157.87, stdev=156.10clat percentiles (usec):|  1.00th=[   46],  5.00th=[   50], 10.00th=[   70], 20.00th=[   73],| 30.00th=[   77], 40.00th=[   89], 50.00th=[  116], 60.00th=[  137],| 70.00th=[  161], 80.00th=[  200], 90.00th=[  265], 95.00th=[  318],| 99.00th=[  383], 99.50th=[  408], 99.90th=[ 3163], 99.95th=[ 3654],| 99.99th=[ 4146]bw (  KiB/s): min=15536, max=21768, per=41.20%, avg=17163.20, stdev=1419.46, samples=119iops        : min= 3884, max= 5442, avg=4290.76, stdev=354.88, samples=119write: IOPS=4286, BW=16.7MiB/s (17.6MB/s)(1005MiB/60001msec); 0 zone resetsslat (usec): min=3, max=8166, avg=15.19, stdev=26.92clat (usec): min=2, max=10019, avg=51.45, stdev=52.63lat (usec): min=28, max=10041, avg=67.20, stdev=59.35clat percentiles (usec):|  1.00th=[   41],  5.00th=[   42], 10.00th=[   42], 20.00th=[   42],| 30.00th=[   43], 40.00th=[   43], 50.00th=[   43], 60.00th=[   44],| 70.00th=[   47], 80.00th=[   50], 90.00th=[   75], 95.00th=[  104],| 99.00th=[  113], 99.50th=[  130], 99.90th=[  215], 99.95th=[  314],| 99.99th=[ 2540]bw (  KiB/s): min=15312, max=21620, per=20.81%, avg=17139.04, stdev=1449.15, samples=119iops        : min= 3828, max= 5405, avg=4284.72, stdev=362.32, samples=119lat (usec)   : 4=0.02%, 10=0.01%, 20=0.01%, 50=42.73%, 100=24.79%lat (usec)   : 250=26.79%, 500=5.53%, 750=0.02%, 1000=0.01%lat (msec)   : 2=0.02%, 4=0.07%, 10=0.01%, 20=0.01%cpu          : usr=7.95%, sys=23.05%, ctx=514776, majf=0, minf=20IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%issued rwts: total=257454,257191,0,0 short=0,0,0,0 dropped=0,0,0,0latency   : target=0, window=0, percentile=100.00%, depth=1Run status group 0 (all jobs):READ: bw=40.7MiB/s (42.7MB/s), 16.8MiB/s-23.9MiB/s (17.6MB/s-25.1MB/s), io=2441MiB (2560MB), run=60001-60001msecWRITE: bw=80.4MiB/s (84.3MB/s), 16.7MiB/s-63.7MiB/s (17.6MB/s-66.8MB/s), io=4825MiB (5059MB), run=60001-60001msecDisk stats (read/write):nvme0n1: ios=624031/1233179, merge=0/0, ticks=84957/51088, in_queue=136046, util=100.00%

将 numjobs参数改为:8,最后结果如下:

Run status group 0 (all jobs):READ: bw=177MiB/s (186MB/s), 8521KiB/s-13.6MiB/s (8726kB/s-14.2MB/s), io=10.4GiB (11.1GB), run=60001-60006msecWRITE: bw=280MiB/s (294MB/s), 8509KiB/s-27.0MiB/s (8713kB/s-29.3MB/s), io=16.4GiB (17.6GB), run=60001-60006msecDisk stats (read/write):nvme0n1: ios=2713427/4292312, merge=0/0, ticks=702077/462120, in_queue=1164198, util=100.00%

可见,设置不同的参数,测得的结果也大不相同,参数灵活,使用复杂。

                                                                老徐,2025/01/06

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

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

相关文章

SpringBoot之核心配置

学习目标: 1.熟悉Spring Boot全局配置文件的使用 2.掌握Spring Boot配置文件属性值注入 3.熟悉Spring Boot自定义配置 4.掌握Profile多环境配置 5.了解随机值设置以及参数间引用 1.全局配置文件 Spring Boot使用 application.properties 或者application.yaml 的文…

后端服务集成ElasticSearch搜索功能技术方案

文章目录 一、为什么选用ElasticSearch二、ElasticSearch基本概念1、文档和字段2、索引和映射3、倒排索引、文档和词条4、分词器 三、ElasticSearch工作原理1、Term Dictionary、Term index2、Stored Fields3、Docs Values4、Segment5、Lucene6、高性能、高扩展性、高可用①高性…

举例说明AI模型怎么聚类,最后神经网络怎么保存

举例说明怎么聚类,最后神经网络怎么保存 目录 举例说明怎么聚类,最后神经网络怎么保存K - Means聚类算法实现神经元特征聚类划分成不同专家的原理和过程 特征提取: 首先,需要从神经元中提取有代表性的特征。例如,对于一个多层感知机(MLP)中的神经元,其权重向量可以作为特…

ocrmypdf使用时的cannot import name ‘PdfMatrix‘ from ‘pikepdf‘问题

最近在做pdf的ocr,之前使用过ocrmypdf,打算再次使用,发现它更新了,所以就打算使用最新版 环境:win11anaconda 创建虚拟环境后安装语句: pip install ocrmypdf -i https://pypi.tuna.tsinghua.edu.cn/simple pip in…

【JavaEE进阶】获取Cookie/Session

🍀Cookie简介 HTTP协议自身是属于 "⽆状态"协议. "⽆状态"的含义指的是: 默认情况下 HTTP 协议的客⼾端和服务器之间的这次通信,和下次通信之间没有直接的联系.但是实际开发中,我们很多时候是需要知道请求之间的关联关系的. 例如登陆⽹站成…

Oracle:ORA-00904: “10“: 标识符无效报错详解

1.报错Oracle语句如下 SELECT YK_CKGY.ID,YK_CKGY.DJH,YK_CKGY.BLRQ,YK_CKGY.ZBRQ,YK_CKGY.SHRQ,YK_CKGY.YT,YK_CKGY.ZDR,YK_CKGY.SHR,YK_CKGY.BZ,YK_CKGY.JZRQ,YK_CKGY.ZT,YK_CKGY.CKLX,(case YK_CKGY.CKLXwhen 09 then药房调借when 02 then科室退药when 03 then损耗出库when…

Linux 磁盘管理命令:使用xfs 管理命令

文章目录 Linux磁盘管理命令使用xfs 管理命令1.命令说明2.建立 XFS 文件系统4.调整 XFS 文件系统各项参数5.在线调整 XFS 文件系统的大小6.暂停和恢复 XFS 文件系统7.尝试修复受损的 XFS 文件系统8.备份和恢…

《Spring Framework实战》3:概览

欢迎观看《Spring Framework实战》视频教程 Spring Framework 为基于现代 Java 的企业应用程序提供了全面的编程和配置模型 - 在任何类型的部署平台上。 Spring 的一个关键要素是应用程序级别的基础设施支持:Spring 专注于企业应用程序的 “管道”,以便…

借助免费GIS工具箱轻松实现las点云格式到3dtiles格式的转换

在当今数字化浪潮下,地理信息系统(GIS)技术日新月异,广泛渗透到城市规划、地质勘探、文化遗产保护等诸多领域。而 GISBox 作为一款功能强大且易用的 GIS 工具箱,以轻量级、免费使用、操作便捷等诸多优势,为…

均值滤波从图像复原角度的解释

廖老师说若将图像生成看作一个随机过程,均值滤波(Mean Filtering)可以视为在高斯噪声模型下的线性最小均方估计(Linear Minimum Mean Squared Error, LMMSE)或者极大似然估计(Maximum Likelihood Estimatio…

高等数学学习笔记 ☞ 一元函数微分的基础知识

1. 微分的定义 (1)定义:设函数在点的某领域内有定义,取附近的点,对应的函数值分别为和, 令,若可以表示成,则称函数在点是可微的。 【 若函数在点是可微的,则可以表达为】…

linux之自动挂载

如果想要实现自动挂载,应该挂在客户端!!!!! 客户端: [rootlocalhost ~]# yum install nfs-utils -y (下载软件) [rootlocalhost ~]# systemctl start nfs-utils.servic…

用户界面软件01

Jens Coldewey 著,Tom.X 译 本文中的模式语言逐步深入地探讨用户界面架构的设计,它基于人机工程学,足以形成一套完整的体系。如果你对这方面有兴趣,请参考[Tog92],[Coo95]和[Col95]。 本文不讨论用户界面的布局&…

Spring整合SpringMVC

目录 【pom.xml】文件; 新建【applicationContext.xml】文件 新建【springmvc.xml】文件; 配置【src/main/webapp/WEB-INF/web.xml】文件; 新建【com.gupaoedu.service.IUserService】; 新建【com.gupaoedu.service.impl.Use…

【数据结构-堆】2233. K 次增加后的最大乘积

给你一个非负整数数组 nums 和一个整数 k 。每次操作,你可以选择 nums 中 任一 元素并将它 增加 1 。 请你返回 至多 k 次操作后,能得到的 nums的 最大乘积 。由于答案可能很大,请你将答案对 109 7 取余后返回。 示例 1: 输入&…

2025.1.8(c++对c语言的扩充——堆区空间,引用,函数)

笔记 上一笔记接续(练习2的答案) 练习:要求在堆区连续申请5个int的大小空间用于存储5名学生的成绩,分别完成空间的申请、成绩的录入、升序排序、成绩输出函数以及空间释放函数,并在主程序中完成测试 要求使用new和d…

(长期更新)《零基础入门 ArcGIS(ArcScene) 》实验七----城市三维建模与分析(超超超详细!!!)

城市三维建模与分析 三维城市模型已经成为一种非常普遍的地理空间数据资源,成为城市的必需品,对城市能化管理至关重要。语义信息丰富的三维城市模型可以有效实现不同领域数据与IS相信息的高层次集成及互操作,从而在城市规划、环境模拟、应急响应和辅助决策等众多领域公挥作用、…

在离线环境中安装 `.rpm` 包的步骤

在一些环境中,可能无法直接通过网络安装软件包。特别是在没有互联网连接的情况下,我们仍然可以手动下载 .rpm 安装包并进行离线安装。本文将介绍如何在离线环境中安装多个 .rpm 包,确保软件的顺利安装和依赖关系的处理。 1. 将 .rpm 文件复制…

【人工智能开题报告】

人工智能开题报告 第一步 12 篇文献 应用(研究)领域历史、现状、发展趋势以及对社会、环境、健康、安全等方面的影响分析第二步 15篇 应用(研究)领域中的 工作成果简述2.1 国外 6篇2.2 国内 9篇 第三步 9/10篇 研究方案 的分析与选…

Harmony开发【笔记1】报错解决(字段名写错了。。)

在利用axios从网络接收请求时,发现返回obj的code为“-1”,非常不解,利用console.log测试,更加不解,可知抛出错误是 “ E 其他错误: userName required”。但是我在测试时,它并没有体现为空,…