查看磁盘容量与分区信息 通过 fdisk -l 命令可以查询到 eMMC 分区信息及容量。 - <font color="#000000">root@myir-yg2lx:~# fdisk -l
- Disk /dev/mtdblock0: 512 KiB, 524288 bytes, 1024 sectors
- Units: sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk /dev/mtdblock1: 256 KiB, 262144 bytes, 512 sectors
- Units: sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk /dev/mtdblock2: 256 KiB, 262144 bytes, 512 sectors
- Units: sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk /dev/mtdblock3: 16 MiB, 16777216 bytes, 32768 sectors
- Units: sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk /dev/mmcblk0: 7.29 GiB, 7818182656 bytes, 15269888 sectors
- 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: dos
- Disk identifier: 0x326d86a0
- Device Boot Start End Sectors Size Id Type
- /dev/mmcblk0p1 20480 122879 102400 50M c W95 FAT32 (LBA)
- /dev/mmcblk0p2 122880 15269887 15147008 7.2G 83 Linux</font>
复制代码
我拿到的开发板是8G的eMMC固态硬盘,共有两个分区:
/dev/mmcblk0p1 :用来存放 kernel 和 dtb 文件
/dev/mmcblk0p2 :用来存放文件系统
这里/dev/mmcblk0p1 起始在 20480 块开始,前面还保存着 bootloader 和分区表的信息。
查看 eMMC 分区信息通过 df 命令可以查询到 eMMC 分区信息,使用情况,挂载目录等信息。 - <font color="#000000">root@myir-yg2lx:~# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/root 6.8G 1.5G 5.0G 23% /
- devtmpfs 235M 0 235M 0% /dev
- tmpfs 428M 0 428M 0% /dev/shm
- tmpfs 428M 9.9M 419M 3% /run
- tmpfs 428M 0 428M 0% /sys/fs/cgroup
- tmpfs 428M 0 428M 0% /tmp
- tmpfs 428M 36K 428M 1% /var/volatile
- tmpfs 86M 0 86M 0% /run/user/0
- /dev/mmcblk0p1 50M 23M 27M 46% /mnt</font>
复制代码
- /dev/root : 根文件系统,挂载到根目录下
- tmpfs: 内存虚拟文件系统,挂载到不同的目录下
- devtmpfs :用于系统创建 dev
- /dev/mmcblk0p1:用来存放 kernel 和 dtb 文件,如果默认不挂载上,则可以手动挂载上去查看
eMMC 的性能测试性能测试主要测试 eMMC 在 linux 系统下对文件的读写速度,一般结合 time 与 dd双命令进行测试。 - <font color="#000000">root@myir-yg2lx:~# time dd if=/dev/zero of=tempfile bs=1M count=100 conv=fdatasnc
- 100+0 records in
- 100+0 records out
- 104857600 bytes (105 MB, 100 MiB) copied, 4.20636 s, 24.9 MB/s
- real 0m4.287s
- user 0m0.009s
- sys 0m0.643s</font>
复制代码
使用 dd 命令写文件时,需要加 conv=fdatasync 参数,表示当 dd 写 N 次结束之后,会 flush cache 同步到磁盘。因为对磁盘的写一般是先写到缓存还没有写到磁盘就返回了。这里测试出写磁盘速度为 24.9MB/s。 在嵌入式系统中,经常需要测试系统文件读写性能,读文件时忽略 cache 的影响。这时可以指定参数 iflag=direct,nonblock。 - <font color="#000000">root@myir-yg2lx:~# time dd if=tempfile of=/dev/null bs=1M count=100 iflag=direc,nonblock
- 100+0 records in
- 100+0 records out
- 104857600 bytes (105 MB, 100 MiB) copied, 2.28087 s, 46.0 MB/s
- real 0m2.286s
- user 0m0.008s
- sys 0m0.090s</font>
复制代码
从上面的数据我们看到,从磁盘直接读取速度为46MB/s.
|