menu E4b9a6's blog
rss_feed
E4b9a6's blog
有善始者实繁,能克终者盖寡。

Linux下测试SSD硬盘速度

作者:E4b9a6, 创建:2021-06-15, 字数:1122, 已阅:99, 最后更新:2021-06-15

这篇文章更新于 1257 天前,文中部分信息可能失效,请自行甄别无效内容。

假设新购入一块SSD硬盘/机械硬盘并接入Linux系统中,通过dd & hdparm两个Linux自带工具可以快速测出该硬盘的性能水准

这里暂定接入的设备为/dev/sdc

hdparm测速方法

TEXT
sudo hdparm -tT /dev/sdc

// 读速输出如下
/dev/sdc:
 Timing cached reads:   24384 MB in  1.99 seconds = 12263.71 MB/sec
 Timing buffered disk reads: 454 MB in  3.00 seconds = 151.25 MB/sec

hdparm的可以简单快捷的测出硬盘的读速,但这个测试方法过于简单,如果需要更确切的性能数据,更推荐使用dd

dd的测速方法

TEXT
sudo dd if=/dev/zero of=/tmp/speedfile bs=8k count=10000 oflag=direct

// 写入速度输出如下
10000+0 records in
10000+0 records out
81920000 bytes (82 MB, 78 MiB) copied, 7.25587 s, 11.3 MB/s

sudo dd if=/tmp/speedfile of=/dev/null bs=8k count=10000 

// 读取速度输出如下
10000+0 records in
10000+0 records out
81920000 bytes (82 MB, 78 MiB) copied, 0.702369 s, 117 MB/s

dd测速命令解释

首先是两个系统自带设备(即上面测试用到的两个本地设备)

  • /dev/null:空设备,写入该设备不会产生IO(形似黑洞,写入即被丢弃),所以可以用来做新盘测试读速的写入对象
  • /dev/zero:零设备,可以无限提供空字符,一般用来生成特定大文件的虚拟设备

另外类似的设备还有/dev/random、/dev/urandom之类的,有兴趣可自行搜索

参数

  • bs:一次写入大小,block size
  • count:写入次数,一般联合bs进行测试
  • skip(可选):原文件读取的起始位置(单位与bs一致)
  • seek(可选):目标文件写入的起始位置(单位与bs一致)
  • oflag:表示写入的符号标志(通常代表不同的写入方式),direct表示直接I/O写入而不使用缓存

dd测速忽略了硬盘缓存等特性,测试的数据不够严谨,但作为个人测速使用相对还是比较直观的


[[replyMessage== null?"发表评论":"发表评论 @ " + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

还没有可以显示的留言...
gravatar
[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]