win和linux下的磁盘测速(读写速度)

win和linux下的磁盘测速(读写速度)1 - 命令行工具测速

后面接Linux下的代码测速 Linux磁盘测速2 - 代码测速

一、linux 下磁盘测速

1. 首先找到都有那些磁盘df命令(disk free,查看磁盘还有多少空闲空间)

wc@r740:~/EDCR/EDCR_C$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             63G     0   63G   0% /dev
tmpfs            13G  4.1M   13G   1% /run
/dev/sda4       492G  272G  195G  59% /
tmpfs            63G  1.1G   62G   2% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs            63G     0   63G   0% /sys/fs/cgroup
/dev/sda5       3.8T  3.6T   54G  99% /home
/dev/sda2       477M  118M  330M  27% /boot
/dev/sdb1        15T   11T  4.5T  70% /data
/dev/loop2      112M  112M     0 100% /snap/core/12941
/dev/loop1      111M  111M     0 100% /snap/core/12834

2. 磁盘读性能(hdparm命令)

根据df命令列出来的磁盘,找到自己想测的磁盘,比如我这里是/dev/sdb1 (也就是我系统中的/data)。

需要注意,要使用管理员权限运行。

wc@r740:~/EDCR/EDCR_C$ sudo hdparm -Tt /dev/sdb1
[sudo] password for wc: 

/dev/sdb1:
 Timing cached reads:   16792 MB in  1.99 seconds = 8427.60 MB/sec
 Timing buffered disk reads: 2050 MB in  3.00 seconds = 682.58 MB/sec

其中T代表的是cached reads, t代表的是buffered disk reads。这里就是3s读取了2050MB,速度是 682.58 MB/sec。

3. 磁盘写性能(time + dd命令)

同样是管理员权限,我这里同样是磁盘/dev/sdb1(请注意自己修改对应的磁盘名称)

wc@r740:~/EDCR/EDCR_C$ sudo time dd if=/dev/sdb1 bs=1024 count=1000000 of=/1Gb.file
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB, 977 MiB) copied, 2.5374 s, 404 MB/s
0.57user 1.94system 0:02.53elapsed 99%CPU (0avgtext+0avgdata 2280maxresident)k
2000360inputs+2000000outputs (0major+82minor)pagefaults 0swaps

可以看到,写入1GB的文件,使用了2.5374s,速度是404MB/s

二、 Windows系统下 winsat命令

1. 打开cmd,运行winsat disk -disk C(不指定盘的话,默认是C盘)

C:\Users\LEVI>winsat disk

如果运行成功将会出现

Windows 系统评估工具
> 正在运行: 功能枚举 ''
> 运行时间 00:00:00.00
> 正在运行: 存储评估 '-drive C -ran -read'
> 运行时间 00:00:00.30
> 正在运行: 存储评估 '-drive C -seq -read'
> 运行时间 00:00:02.77
> 正在运行: 存储评估 '-drive C -seq -write'
> 运行时间 00:00:03.55
> 正在运行: 存储评估 '-drive C -flush -seq'
> 运行时间 00:00:00.86
> 正在运行: 存储评估 '-drive C -flush -ran'
> 运行时间 00:00:00.83
> Dshow 视频编码时间                                 0.00000 s
> Dshow 视频解码时间                                 0.00000 s
> 媒体基础解码时间                                     0.00000 s
> Disk  Random 16.0 Read                       159.43 MB/s          7.5
> Disk  Sequential 64.0 Read                   438.28 MB/s          8.0
> Disk  Sequential 64.0 Write                  222.04 MB/s          7.4
> 顺序写操作的平均读取时间                                 0.434 ms          8.1
> 延迟: 95%                                      2.062 ms          7.6
> 延迟: 最大                                       19.430 ms          7.9
> 随机写操作的平均读取时间                                 0.453 ms          8.7
> 总运行时间 00:00:08.59

2. 如果失败(出现运行界面,但是没看到最终结果),应该是权限不够。找到powershell,右键,以管理员身份运行。继续输入winsat disk -drive C

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS C:\WINDOWS\system32> winsat disk -drive C
Windows 系统评估工具
> 正在运行: 功能枚举 ''
> 运行时间 00:00:00.00
> 正在运行: 存储评估 '-drive C -ran -read'
> 运行时间 00:00:00.30
> 正在运行: 存储评估 '-drive C -seq -read'
> 运行时间 00:00:02.77
> 正在运行: 存储评估 '-drive C -seq -write'
> 运行时间 00:00:03.55
> 正在运行: 存储评估 '-drive C -flush -seq'
> 运行时间 00:00:00.86
> 正在运行: 存储评估 '-drive C -flush -ran'
> 运行时间 00:00:00.83
> Dshow 视频编码时间                                 0.00000 s
> Dshow 视频解码时间                                 0.00000 s
> 媒体基础解码时间                                     0.00000 s
> Disk  Random 16.0 Read                       159.43 MB/s          7.5
> Disk  Sequential 64.0 Read                   438.28 MB/s          8.0
> Disk  Sequential 64.0 Write                  222.04 MB/s          7.4
> 顺序写操作的平均读取时间                                 0.434 ms          8.1
> 延迟: 95%                                      2.062 ms          7.6
> 延迟: 最大                                       19.430 ms          7.9
> 随机写操作的平均读取时间                                 0.453 ms          8.7
> 总运行时间 00:00:08.59

值得一提的是,我的D盘的随机读时间要慢不少( 2.17 MB/s )。应该是因为D盘是HDD(随机读需要频繁移动磁头),C盘是SSD(SSD主要由flash组成,本身就以随机读能力著称,此外,SSD现在也可以和RAID结合,有些SSD由于其多块FLASH闪存芯片组成的RAID 0阵列,其处理随机读能力要更强,当然我这里C盘是SSD还是SSD + RAID,我就不去继续考虑了)。

PS C:\WINDOWS\system32> winsat disk -drive D
Windows 系统评估工具
> 正在运行: 功能枚举 ''
> 运行时间 00:00:00.00
> 正在运行: 存储评估 '-drive D -ran -read'
> 运行时间 00:00:07.72
> 正在运行: 存储评估 '-drive D -seq -read'
> 运行时间 00:00:04.70
> 正在运行: 存储评估 '-drive D -seq -write'
> 运行时间 00:00:04.16
> 正在运行: 存储评估 '-drive D -flush -seq'
> 运行时间 00:00:04.08
> 正在运行: 存储评估 '-drive D -flush -ran'
> 运行时间 00:00:10.17
> Dshow 视频编码时间                                 0.00000 s
> Dshow 视频解码时间                                 0.00000 s
> 媒体基础解码时间                                     0.00000 s
> Disk  Random 16.0 Read                       2.17 MB/s          4.3
> Disk  Sequential 64.0 Read                   200.74 MB/s          7.3
> Disk  Sequential 64.0 Write                  208.30 MB/s          7.3
> 顺序写操作的平均读取时间                                 3.385 ms          6.5
> 延迟: 95%                                      19.177 ms          4.7
> 延迟: 最大                                       56.988 ms          7.8
> 随机写操作的平均读取时间                                 6.905 ms          5.4
> 总运行时间 00:00:31.16

三、备注

1. 需要用管理员权限运行(linux sudo, windows powershell,右键,以管理员身份运行)

2. 以上测速并不是很稳定,建议运行多次取平均值

后面接Linux下的代码测速 Linux磁盘测速2 - 代码测速

你可能感兴趣的:(linux,服务器,运维)