emmc 性能优化
来源:互联网 发布:three.js 3d全景demo 编辑:程序博客网 时间:2024/05/16 08:08
好久没有更新了,加一篇。。。。
1.驱动方面
1.1内容点
位宽(决定了单次时序传输的最大位宽):
SPL阶段:4bit width(可以改为8bit width)
Uboot阶段:8bit width
Kernel阶段:8bit width
时钟(决定了时序的快慢):
SPL阶段:13M
Uboot阶段:52M
Kernel阶段:52M
总结:
通过调整为最大时钟和最大位宽可以将emmc的性能发挥到最大
另外修改emmc的block大小也可以提高访问的速度,但是block设置太大容易造成浪费,默认都是512Byte,这样可以减少系统文件的碎片化
1.2修改的地方
时钟:kernel/include/linux/mmc/card.h
位宽:kernel/include/linux/mmc/mmc.h
2.挂载参数方面
2.1mount参数(加粗的为推荐挂载参数)
loglevel的级别,测试IO性能时,将log级别设为1
nodelalloc和delalloc
delalloc,这是默认值,就是说把所有的block分配推后到真正要写数据的时候,当有sync调用的时候才会分配block.这样会造成写等待,因此为了提高性能挂载时需关闭delalloc.
discard和nodiscard
discard向下级块设备通知块已释放,nodiscard不向下级块设备通知块已释放,通知的过程会降低IO性能
noauto_da_alloc和auto_da_alloc
noauto_da_alloc不使用延迟分配功能,而是在当时立刻确保块,和2中类似
2.2修改方法
文件系统的挂载是在解析init.rc的时候进行的挂载./scx35/init.sc8830.rc
mount_all/fstab.sc8830
修改路径:device/sprd/scx35x/emmc/fstabxxx.sc8830
3.block层的一些参数
3.1内容点
max_sectors_kb:
参数意义:决定了IO单次的最大数据请求量
可以通过修改MMC_QUEUE_BOUNCESZ的值进而修改max_sectors_kb
dirty_background_bytes
当脏页所占的内存数量超过dirty_background_bytes时,内核的pdflush线程开始回写脏页。
dirty_background_ratio(非阻塞)
参数意义:当脏页所占的百分比(MemFree + Cached - Mapped)达到dirty_background_ratio时内核的pdflush线程开始回写脏页。增大会使用更多内存用于缓冲,可以提高系统的读写性能。当需要持续、恒定的写入场合时,应该降低该数值。
dirty_bytes(阻塞)
当脏页所占的内存数量达到dirty_bytes时,执行磁盘写操作的进程自己开始回写脏数据。
dirty_ratio
参数意义:当脏页所占的百分比(所有内存)达到dirty_ratio时,进程pdflush会自己开始回写脏数据。增大会使用更多系统内存用于缓冲,可以提高系统的读写性能。当需要持续、恒定的写入场合时,应该降低该数值。
dirty_expire_centisecs
参数意义:用来指定内存中数据是多长时间才算脏(dirty)数据。指定的值是按100算做一秒计算。只有当超过这个值后,才会触发内核进程pdflush将dirty数据写到磁盘。
dirty_writeback_centisecs
这个参数会触发pdflush回写进程定期唤醒并将old数据写到磁盘。每次的唤醒的间隔,是以数字100算做1秒。如果将这项值设为500就相当5秒唤醒pdflush进程。如果将这项值设为0就表示完全禁止定期回写数据。
3.2修改方法
路径:kernel/Documentation/laptops/laptop-mode.txt
393# kernel default dirty buffer age
394DEF_AGE=${DEF_AGE:-'30'} //dirty_expire_centisecs
395DEF_UPDATE=${DEF_UPDATE:-'5'}//dirty_writeback_centisecs
396DEF_DIRTY_BACKGROUND_RATIO=${DEF_DIRTY_BACKGROUND_RATIO:-'10'}////dirty_background_ratio
397DEF_DIRTY_RATIO=${DEF_DIRTY_RATIO:-'40'}//dirty_ratio
路径:system/core/rootdir/init.rc
write/proc/sys/vm/dirty_background_bytes 4194304 // dirty_background_bytes
- emmc 性能优化
- eMMC性能分析
- FAT文件系统与EMMC存储芯片适配与性能优化
- EMMC
- emmc
- emmc
- EMMC
- eMMC
- emmc
- eMMC
- android系统中emmc使用不同文件系统读写性能对比
- 性能优化
- 性能优化
- 性能优化
- 性能优化
- 性能优化
- 性能优化
- 性能优化
- 简单toast
- UI - UISearchController&UISearchDisplayController
- 遇到Json之类的相关问题
- 第三周 项目3-求集合并集
- const与引用
- emmc 性能优化
- SVG关于animateTransform实现太阳系行星绕行的注意点
- Django使用pymysql的方法
- JSP网页动态开发
- 分苹果
- 贝塞尔校正
- Java类的加载和初始化顺序分析
- HTTP深入浅出 http请求
- OpenCV16(人脸检测)