SSD和传统的磁盘在组织形式上不一样,磁盘有扇区,柱面,盘面的概念。而SSD flash存储完全不同,ssd由page,block,plane,die组成。
linux内核把ssd当做一个块设备,和磁盘模型一样的块设备。SSD内部的FTL隐藏ssd page,block,plane,die的关系,使得OS无法专门进行优化。
1. 调整ssd暴漏给OS的扇区、磁道等信息是合适的
fdisk -H 224 -S 56 /dev/sdd
这里的-H参数指的是“磁头”数量,-S参数指的是每磁道的扇区数量,fdisk总是把任何硬盘当作旋转机械硬盘对待,因此有些参数对SSD硬盘来说是没有任何意义的
使用下面的命令创建了一个ext4文件系统:
[root@test64 ~]# mke2fs -t ext4 -E stripe-width=32 resize=500G /dev/sdd1
“stripe-width=32”是Theodore推荐的,据说对性能有帮助,“resize=500G”将文件系统大小限制在500GB以内
2. 在Linux的不同层面对于SSD的使用做适当的调整
Block Layer
scheduler
修改调度器为noop
Partition alignment
可以从1M处开始分区,保证都是分区对齐。(block对齐?)
Filesystem
ext4
关闭日志
不关闭日志时,把日志分区和单独放一个分区
noatime,nodiratime,discard
也就是减少元数据更新,enable trim
Applocation
调整app相应的配置,是app设计内部机制调整。
原文地址:http://xmwang.blog.51cto.com/9889672/1678354