读速度
hdparam -Tt /dev/sha
或者
time dd if=/tmp/1GB.file bs=1k count=1048576 of=/dev/null
写速度
time dd if=/dev/zero bs=1k count=1048576 of=/tmp/1GB.file
# 1G = 1024*1024k = 1048576
二进制换算关系
1GB=1024MB
1MB=1024KB
1KB=1024Byte
1Byte=8Bit
扩展:
bps:位/每秒,通常对于串行总线设备使用bps为单位,如串口,USB口,以太网总线等。
Bps:字节/每秒,通常对于并行总线设备使用Bps为单位,如并口,IDE硬盘等。 带宽1M,是1024K个bit,即16个64K bit
dd命令解释
dd if= of= bs= skip= seek= conv=
一定不要搞混 source 和 target,不然数据会丢失。所以 dd 平时用着顺手就叫它 dd,但是不小心把数据弄没了就该哭着叫它 Data Destroyer 了。
一般它的常用参数有:
bs=n,block size,每次读取 n bytes 写入,可与 count 联用;可以使用分区设置的block size大小,bs大小的设置也会影响到读写速度。
ibs=n,一次读入 bytes 个字节 (default is 512);
obs=n,一次性写 n bytes 个字节 (default is 512);
bs 可以同时设置上边两个参数;
cbs=n,一次转换 n 个 bytes,即转换缓冲区大小。;
count=n, bs 操作的次数,仅拷贝 n 个块,如 dvd: bs=1M count=4430;
skip=n,指 if 后面的原文件跳过 n bytes 再开始读取;
seek=n,指 of 后面的目标文件跳过 n bytes 再开始写入;
磁盘缓存知识
磁盘缓存(Disk Buffer)或磁盘快取(Disk Cache)实际上是将下载到的数据先保存于系统为软件分配的内存空间中(这个内存空间被称之为“内存池”),当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际的磁盘操作,有效的保护磁盘免于重复的读写操作而导致的损坏。
磁盘缓存是为了减少CPU透过I/O读取磁盘机的次数,提升磁盘I/O的效率,用一块内存来储存存取较频繁的磁盘内容;因为内存的存取是电子动作,而磁盘的存取是I/O动作,感觉上磁盘I/O变得较为快速。
所以磁盘缓存(disk Buffer)是磁盘自带的缓存设备,而磁盘快取(Disk Cache)是将数据缓存到内存中。
$free -m
total used free shared buff/cache available
Mem: 3770 947 1021 21 1801 2546
Swap: 0 0 0
#buff/cache 就表示使用了多少内存作为IO缓存
磁盘类型SSD、HD查看
通过查看/sys/block/sda/queue/rotational
通过cat /sys/block/sda/queue/rotational进行查看,返回值0即为SSD;返回1即为HDD
HDD
[root@ssd-test thatsit]# cat /sys/block/sda/queue/rotational
1
[root@ssd-test thatsit]# lsscsi
[0:0:32:0] enclosu DP BP12G+ 1.00 -[0:2:0:0] disk DELL PERC H310 2.12 /dev/sda
SSD
[root@hdd-test thatsit]# cat /sys/block/sda/queue/rotational
0
[root@hdd-test thatsit]# lsscsi
[0:0:0:0] disk ATA INTEL SSDSC2BX48 0150 -[0:0:1:0] disk ATA INTEL SSDSC2BX48 0150 -[0:1:0:0] disk LSI Logical Volume 3000 /dev/sda
[root@hdd-test thatsit]#
参考:
https://www.cnblogs.com/bjx2020/p/9077843.html