目录
通过命令 btt -i sdc1.blktrace.bin -B sdc1.offset,获取读写的偏移量及时间戳:
-
现象复现
已经带有dos分区信息的U盘,通过parted命令更改为gpt,将分区信息去除,而后通过fdisk重新添加一个分区。
sudo parted /dev/sdc (干掉整个分区信息)
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? y
(parted) print
Model: Kingston (scsi)
Disk /dev/sdc: 15.6GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
fdisk -l 查看磁盘的分区信息
Disk /dev/sdb: 14.7 GiB, 15728640000 bytes, 30720000 sectors
Disk model: www
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
无分区信息
通过fdisk 命令 n->p w创建一个分区后
Disk /dev/sdb: 14.7 GiB, 15728640000 bytes, 30720000 sectors
Disk model: www
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 955302AA-77EB-4798-99C5-67F54436B834
Device Start End Sectors Size Type
/dev/sdb1 2048 30719966 30717919 14.7G Linux filesystem
此时通过命修改 分区的label,时间耗时7s多。
sudo time e2label /dev/sdb1 test
0.00user 0.00system 0:07.27elapsed 0%CPU (0avgtext+0avgdata 2952maxresident)k
160inputs+80outputs (0major+154minor)pagefaults 0swaps
不是所有U盘都如此。
-
iostat获取IO状态
对磁盘进行iostat -x 3 /dev/sdb ,同时运行sudo e2label /dev/sdb1 test的测试数据
耗时长时间的U盘信息
avg-cpu: %user %nice %system %iowait %steal %idle
0.83 0.00 1.33 0.25 0.00 97.59
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdb1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.58 0.00 1.25 10.01 0.00 88.16
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdb1 0.67 0.33 16.00 0.33 0.00 1.00 0.00 75.00 1.50 717.00 0.24 24.00 1.00 242.67 24.27
avg-cpu: %user %nice %system %iowait %steal %idle
0.83 0.00 1.17 42.63 0.00 55.37
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdb1 0.00 1.33 0.00 1.33 0.00 1.00 0.00 42.86 0.00 1442.00 1.92 0.00 1.00 721.00 96.13
avg-cpu: %user %nice %system %iowait %steal %idle
0.75 0.00 1.74 26.45 0.00 71.06
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdb1 0.00 1.67 0.00 1.67 0.00 1.33 0.00 44.44 0.00 1163.20 1.93 0.00 1.00 726.40 121.07
avg-cpu: %user %nice %system %iowait %steal %idle
1.66 0.00 2.24 1.00 0.00 95.11
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdb1 13.67 0.00 371.83 0.00 0.00 0.00 0.00 0.00 4.12 0.00 0.03 27.21 0.00 2.93 4.00
^C
耗时短正常的U盘使用上述测试命令的数据:
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdc1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
1.07 0.00 2.63 1.15 0.00 95.16
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdc1 14.33 3.33 387.83 3.33 0.00 3.33 0.00 50.00 3.19 5.30 0.04 27.06 1.00 2.42 4.27
avg-cpu: %user %nice %system %iowait %steal %idle
0.91 0.00 2.06 3.30 0.00 93.73
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdc1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
1.24 0.00 1.81 6.92 0.00 90.03
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdc1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
w_await 的数据很高 。
-
通过blktrace分析各段的数据
sudo blktrace /dev/sdc1
blkparse -i sdc1
blkparse -i sdc1 -d sdc1.blktrace.bin
btt sdc1.blktrace.bin 做统计信息