前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正。 计划以手头一个爱国者32GB USB 3.0优盘作为外置存储设备,话说这玩意一是兼容性欠佳,二是质量堪忧。虽然7、8年前用过aigo的U盘和mp4,但是面对现在的爱国者你让我如何爱你。 由于Flash存储有擦写寿命,所以如何延长其闪存寿命是一个巨大的问题。相比于Windows原生支持,Linux系统对NTFS、FAT32等文件系统的性能表现欠理想,而且这个U盘挂载在Espressobin上并不准备拿下来,所以我们选择ext4文件系统,虽然ext4在Linux下应用、支持广泛,性能优异,但是其是日志文件系统,频繁写入日志将会极大降低闪存的寿命。 一般我们会考虑更改系统I/O调度、使用电源管理、优化文件系统以及使用trim等方式。 1.1 电源管理我们这里发现,Espressobin使用的ArchLinux并没有io调度和电源管理芯片。。。 但是查看Armada 3700 SoC的方框图,上面写着Power Management,在手册里讲得比较详细: Power Management: 可知这与PMC|PMU是有区别的,PMC可以为系统提供freeze/standby/mem等低功耗状态,类似于Windows下的休眠睡眠等。而SoC的电源管理主要功能是动态调节CPU电压/频率,以及必要时关闭CPU核心。 我们可以查看用户空间相关信息,对CPU频率等进行设置。 可以看到Armada 3700拥有两个CPU核心,并可以查看设置电源模式(scaling_available_governors,scaling_governor)等。比如默认是performance最佳性能模式,虽然可以改动为ondemond和powersave模式,但是似乎SoC频率并没有改变。 更多内容可以阅读我的文章《吃我一记咸鱼突刺——使用板载RTC定时开机》,另外Espressobin没有板载rtc。 1.2 取消日志,延长闪存寿命在我之前的文章《板载eMMC初探》里讲过,使用ext4+禁用日志+discard之后,eMMC性能非常优秀,并且禁用日志 (jounal)之后,可以减少读写,延长flash寿命。这里我们创建一个没有日志特性的ext4文件系统: # 查看U盘设备,这里假设为/dev/sda lsblk # 新建分区并格式化 dd if=/dev/zero of=/dev/sda bs=1M count=8 (echo n; echo p; echo 1; echo ''; echo ''; echo w) | sudo fdisk /dev/sda mkfs.ext4 -O ^metadata_csum,^64bit,^has_journal /dev/sda1 # 查看当前文件系统特性 dumpe2fs /dev/sda1 |grep 'Filesystem features' # 创建挂载点并修改/dev/fstab文件以开机自动挂载 sudo mkdir /mnt/storage cat << _EOF_ >> /etc/fstab /dev/sda1 /mnt/storage ext4 defaults 0 0 _EOF_重启之后即可看到自动挂载了。更多内容请参考我的文章《优化Guitar性能,延长eMMC寿命》。 1.3 使用fstrim不再赘述,请参考上文链接。 1.4 文件夹权限因为创建的挂载点希望将来可以进行共享,所以需要设置相应的权限。记住rwx:421即可。详细情参考chmod命令详解。 sudo chown alarm -R /mnt/storage sudo chmod 766 -R /mnt/storage |