Linux 读写 优化 ssd,linux ssd 优化

一、修改默认的固态硬盘(SSD)柱面大小

提升Linux下固态硬盘的使用率,在安装Linux操作系统前就应该做相关工作。系统会先在磁盘上创建分区,通常创建的分区包含固定数量的柱面,而默认情况下,每个柱面由16065512个字节的扇区组成。

现在的问题是,当默认柱面空间大小被完全使用后,固态硬盘就不能发挥最佳性能。因为要固态硬盘读这个操作需要使用4KB的字节块,而固态硬盘控制器删除操作则需要512KB的字节块。问题是,有了通常用于Linux上的默认分区,分区的开始没必要也是一个4KB新分区的开始。结果,一次读取或写入操作也许需要SSD设备上的两个不同的区块,这也减缓了SSD磁盘的性能。

为了避免这种问题,可以采用fdisk方式来创建分区,配置三个选项来指定使用柱面及拍面大小。具体的命令如下:

fdisk -H 32 -C 32 –c /dev/sdb

二、配置固态硬盘(SSD)的Ext 4

接着需要关注的就是文件系统。想要优化文件系统删除字节区块的效率,就必须确保小于512K的文件分布在不同的删除字节区块上。要做到这一点,必须确保在创建可扩展文件系统时指定了需要使用的条带的宽度和幅度。这些值在页面中指定,默认大小为4KB。要创建一个最佳的可扩展文件系统,应该使用如下命令:

mkfs.ext4 -E stride=128,stripe-width=128 /dev/sda1

如果要修改现有的文件系统的参数,可以使用tune2fs实用程序:

tune2fs -E stride=128,stripe-width=128

/dev/sda1

三、配置固态硬盘(SSD)的I/O调度程序

优化的第三个部分涉及到I/O调度程序。该模块是一个决定如何处理I/O请求的核心组件。默认情况下就是非常公平的排队,对于普通的磁盘驱动器来说,这是很好的方案,但对于以期限调度为优势的固态硬盘来说,这并不是最好的。

如果你想在系统中对所有磁盘采用期限调度,可以在内核加载时把elevator=deadline这句话加入到系统引导管理器(GURB)中;如果你只是想针对某一个磁盘,就应该在rc.local文件中加入类似如下实例的一句话,那么每次当系统重启,期限调度就会应用到指定的磁盘。如下实例将会对/dev/sdb磁盘采用期限调度。

echo deadline > /sys/block/xvda/queue/scheduler

给IO的算法修改成

noop,操作系统本身不做处理,让 ssd 本身处理.

echo noop >

/sys/block/sda/queue/scheduler

四、清理固态硬盘(SSD)中的数据块

最后一个重要的步骤称为“清理”,该操作可以确保在删除文件后相应的数据块真正清空,然后在创建新的文件时才能有可用的数据块。如果没有清理操作,一旦数据块空间填满,固态硬盘的性能就会下降。如果使用丢弃挂载选项,当文件删除后,数据块也会被相应地清除,这样可以显著提高固态硬盘的性能。2.6.33以上的内核已经支持清理操作。

要启用清理功能,需要在固态硬盘的/etc/fstab配置中为挂载文件系统添加丢弃选项。示例中的命令为挂载的根逻辑卷启用了清理操作。

/dev/system/root/ext4 discard,errors=remount-ro,noatime 0 1

使用起来相当容易,就是在

mount 的时候,加一个参数 discard  来启用这个功能

修改 atime 的功能,让 ssd 少操作,没有必要要这个信息.

该命令同时也添加了Noatime选项,该选项保证了文件的访问时间不会因为每次读取而更新,从而降低对文件系统的写入次数。

在fasab配置文件中完成对文件系统的这些修改后,重启计算机,或者通知文件系统重新读取其配置,然后使用/etc/fstab文件中包含的mount

-o

remount命令重新安装每个文件系统。

%E4%BC%98%E5%8C%96/

IDF2012针对数据中心应用优化固态硬盘的性能

阅读(428) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值