[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路。]
大家好,我是【WeiyiGeek/唯一极客】一个正在向全栈工程师(SecDevOps)前进的技术爱好者
作者微信:WeiyiGeeker
公众号/知识星球:全栈工程师修炼指南
主页博客: https://weiyigeek.top - 为者常成,行者常至
原文地址:
运维Tips | 如何判断Linux服务器磁盘是否为SSD还是HDD?如何判断Linux服务器磁盘是SSD还是HDD?此文介绍3种判断linux物理机磁盘类型的方法,方式1使用lsblk命令,方式2查看/sys/block/*/queue/rotational文件,方式3使用sysbench工具进行压力测试
https://mp.weixin.qq.com/s/601smodGl_udL_Nybmm_ug
如何判断Linux服务器磁盘是否为SSD还是HDD?
描述: 此处介绍3种常见的判断linux物理机磁盘类型的方法,方式1使用lsblk
命令,方式2是查看/sys/block/*/queue/rotational
文件,方式3是使用sysbench
工具进行压力测试。
方式1.描述: 使用 lsblk 命令中 -o 参数输出指定的 rotational device
值,若为1则为HDD、反之则为SSD。
# 仅查看物理盘的名称、空间大小、SSD(0)? HDD(1)?, 设备供应商以及状态。
lsblk -d -o NAME,SIZE,ROTA,VENDOR,STATE
# NAME SIZE ROTA(重点) VENDOR STATE
# sda 558.9G 1 MSCC running
方式2.描述: 查看 /sys/block/*/queue/rotational
的返回值(其中*为你的硬盘设备名称,例如sda、sdb等等),如果返回1则表示磁盘可旋转,那么就是机械硬盘HDD了;反之,如果返回0,则表示磁盘不可以旋转,那么就有可能是固态硬盘SSD了。
# 磁盘设备
fdisk -l | grep "/dev"
# 磁盘 /dev/sda:600.1 GB, 600093712384 字节,1172058032 个扇区
# 指定盘验证是否为SSD
cat /sys/block/sda/queue/rotational
# 批量验证
grep ^ /sys/block/*/queue/rotational
/sys/block/dm-0/queue/rotational:1
/sys/block/dm-1/queue/rotational:1
/sys/block/dm-2/queue/rotational:1
/sys/block/dm-3/queue/rotational:1
/sys/block/sda/queue/rotational:1 # 真实物理盘
# 使用脚本
if [ $(cat /sys/block/sda/queue/rotational) -eq 0 ];then echo "SSD"; else echo "HDD"; fi
来自`select *`网友:具体来说,rota表示磁盘是否是旋转磁盘(rotational disk)。如果rota的值是1,则表示该磁盘是旋转磁盘,也就是我们通常所说的机械硬盘(HDD)。这是因为机械硬盘内部有旋转的磁盘片和移动的读写头。
相反,如果rota的值是0,则表示该磁盘不是旋转磁盘,它通常是一个固态硬盘(SSD)。固态硬盘没有旋转的磁盘片,而是通过存储芯片(如NAND闪存)来存储数据。
方式3.描述: 使用磁盘压测工具 sysbench
进行相应测试,通常读写次数在2万~4万间,吞吐量在300~600M/s,可以判定磁盘为SSD。
# 安装sysbench
yum install -y sysbench
# 选择要测的磁盘路径 /mnt/disk1
cd /mnt/disk1
# 创建测试文件
# 准备阶段:IO测试,线程数为40,创建大小为500M的测试文件64个,共32G,使用了随机读写模式(rndrw)测试300s,执行完后会在当前目录下生成一堆小文件。
sysbench --test=fileio --file-total-size=32G --file-test-mode=rndrw --time=300 --max-requests=0 --file-block-size=16K --file-num=64 --threads=40 prepare
# 测磁盘io
# 运行阶段
sysbench --test=fileio --file-total-size=32G --file-test-mode=rndrw --time=300 --max-requests=0 --file-block-size=16K --file-num=64 --threads=40 run
# 输出结果
File operations:
reads/s: 36369.44
writes/s: 24246.29
fsyncs/s: 38802.60
Throughput:
read, MiB/s: 568.27
written, MiB/s: 378.85
General statistics:
total time: 300.0042s
total number of events: 29824059
Latency (ms):
min: 0.00
avg: 0.37
max: 8.21
95th percentile: 1.96
sum: 11174442.44
温馨提示:作者最近正在整理自己10年笔记,全栈系列从门到实践教程将会逐步持续同步到公众号内,若需要在线实时浏览作者笔记的童鞋,请添加作者[WeiyiGeeker],当前价格¥168,获取在网络、安全、运维、开发(Sec、Ops、Dev)中的所有学习实践笔记,和问题答疑以及远程技术支持,希望大家多多支持!
至此完毕,更多技术文章,请持续关注公众号并添加星标,获取及时文章推送!
作者博客: https://blog.weiyigeek.top
如果此篇文章对你有帮助,请你将它分享给更多的人!
学习推荐 往期文章
【全栈工程师修炼指南】邀你加入学习交流群!
作者微信【WeiyiGeeker】,一起学习交流进步吧!
此文,为作者原创文章,希望大家多多支持,若对看友您有帮助请帮忙转发,点👍、在看,若有疑问的小伙伴,可在文末留言哟!