SSD碎片早期网络文章摘录-阿里云开发者社区

开发者社区> 开发与运维> 正文

SSD碎片早期网络文章摘录

简介:
第一篇 :
那么就有另外一个事儿需要说道说道了,做缓存的时候经常有大量的碎片文件(当然直接理解为小文件即可)需要读写,MLC型固态硬盘本来寿命就短,用来作为擦写频繁的缓存的话恐怕就更不合适,所幸本款技嘉GA-Z68XP-UD3-iSSD主板搭载的是SLC型固态硬盘,用SLC型固态硬盘来做缓存相较MLC型固态硬盘更有优势。


    本次评测中使用的技嘉GA-Z68XP-UD3-iSSD附赠了一款Intel 311 SLC型固态硬盘,配合技嘉 EZ Smart response,用户可以很容易地将SSD硬盘设置成主机械硬盘的缓存。



第二篇 : 

有关SSD的一些事儿(NoATime,allocation block)

SSD 的价格一路走低,使得它也越来越被普通用户接受,0噪音,抗震动,读写迅速使得很多用户对它趋之若鹜。但是,多数用户对 SSD 的认识确流于表面,特别是对它性能的理解。大部分用户只认 SSD 上标注的顺序读写参数,这个确实也是一种悲哀。这篇文章,就是为广大在 Mac OS X 下使用,和将要使用SSD的朋友,简单说一说选购,使用 SSD 应该注意的一些问题。

1: 选 SSD 应该知道的概念

SSD 有几个重要的概念,主控芯片,NAND 存储芯片,缓存。

主控芯片,相当与电脑的 CPU,它的好坏直接影响到 SSD 的稳定和效率。现在主流的SSD芯片,主要是 Intel,JMicron,Indilinx,Toshiba,Samsung,Sandforce。Intel的主控使用在自家产品以及为金士顿等品牌的贴牌产品中,它的特点是领先业界的并行10通道读写和优化的算法,使得 Intel SSD 在稳定性,和随机读写性能在很长一段时间内远远领先其它厂商。

JMicron的芯片,一般为各大山寨品牌所使用,包括类似源科,PQI,金胜以及早期的OCZ,Photofast等DIY品牌,优点就是价格便宜,稳定性性能几乎没有。Indilinx,也是一个类似JMicron的低价位主控解决方案,但是它的稳定性和性能,都比JMicron要好很多,现在好多主流DIY品牌的SSD在使用它的芯片。Sandforce 是一个后起之秀,性能强悍,现在市场上DIY品牌的高性能SSD,几乎全是 Sandforce 解决方案,著名的镁光C300,OCZ Extreme,都是使用 Sandforce 芯片。Toshiba和Samsung的主控,都用与自家的SSD之上,性能中庸,胜在稳定。

NAND 存储芯片,这个东西不用多说,从U盘开始,我们其实就已经接触过这个东西了,主流的 NAND 芯片,有Samsung,Toshiba,Intel&Micron(Intel 镁光合资)。这个东西,一般分为三种,SLC, MLC,和新的 eMLC. SLC 就是著名 X25 E使用的NAND芯片,单层存储结构,性能超高,寿命长,极其稳定,但是容量小,价格高,一般在企业级市场使用。MLC,是最常见的SSD NAND 存储芯片,X25 M, Samsung,Toshiba,以及其它的DIY品牌主流产品都有使用。多层存储结构,性能不错,容量大,价格低廉,寿命可以接受。还有一种,就是将要在 2011 CES 大会上,Intel 发布的 X25 E 二代使用的 eMLC 存储芯片。它是 MLC 的一个变种,虽然 SLC 性能强悍,但是单位存储价格太高,eMLC 很好的解决的这个问题,通过给普通的MLC芯片加入ECC校验,等等数据安全性能,已经使MLC的安全性可以进入企业业务关键领域。

缓存,早期的山寨SSD,都是没有缓存的,这个就导致SSD非常不稳定,容易出现数据读写错误。当然,目前市面上主流的SSD,都带有缓存芯片。缓存有两个参数,频率和容量,和内存一样,这个东西频率越高,容量越大越好。但是 Intel 似乎非常自信于它的主控设计,25E, 25M 的缓存从频率到容量都不太能拿得出手,但是还有如此性能,可见它主控有多厉害了。现在主流的DIY品牌,无一例外的都是128M,256M缓存起步,这样虽然主控查一些,但是也能有非常厉害的顺序读写性能,再加上不错的 Sandforce,数据就非常华丽了。可见,如果下一代Intel,能够提高缓存容量以及频率,秒杀DIY品牌应该不是什么难事。

2: SSD 的参数如何看

SSD 有几个重要的参数,顺序读写性能,随机读写性能,抗震性能,寿命

顺序读写,就是在磁盘上读取和写入一个连续大文件的性能。这个性能一般也就是标示在 SSD 包装盒上的那个读写性能。说实话,顺序读写性能不能够反映出一个 SSD 的真实性能,只要缓存够大,频率够高,一个垃圾山寨的 SSD,都能达到读写200MBs+的恐怖性能。所以,这个看看就得了。

随机读写性能,这个东西,才是能够真实反应一个 SSD 主控水平和性能的最重要的参数。我们知道,文件系统上的文件,并不是连续存储的,随着硬盘的使用,添加新文件,删除老文件,,,所有的文件在物理层面上,都是松散存放,这也就是磁盘碎片的由来之一。而且,统计数据也说明,电脑上真正被频繁使用读写的文件,90%都是都是4KB~2048KB(2MB)左右大小的文件。所以,这些小文件的随机读写性能,就成为一个硬盘性能的重要考量。传统的HDD由于机械结构,读写小文件的时候,磁头在磁盘盘面上进行频繁的寻址操作(寻道 seek),所以小文件随机读写SSD 由于不存在机械部件,所以寻址操作和随机读写的性能高于传统HDD太多。所以选购SSD时,这是一个重要的参考参数。但是要注意,每一个品牌的SSD,在介绍随机读写性能时,可能会有 * 号注解。来表明这个性能是在某种特殊情况下得到,比如 25M G2 的性能介绍

Random I/O Operations per Second (IOPS)?
  1. Random 4KB Reads: up to 35,000 IOPS
  2. up to 6,600 IOPS (80GB drive)
  3. up to 8,600 IOPS (120GB drive)
  4. up to 8,600 IOPS (160GB drive)

? Measurement performed on 8GB span.

4KB 非常厉害,但是要注意那个 IOPS 后面的 1 字符,看到后面你就谁知道,原来这个是在特定连续的 8GB 区间下得到的。正常日常使用的时候,我们无法严格按照这个数据来使用。

抗震,这个不必多说,一般也没人拿着SSD摔来摔去

寿命,不管是 SLC 还是 MLC,都有一定的擦写寿命,但是这个一般不用担心,主流 SSD 主控都有均衡算法,会平衡的擦写个个 NAND cell,一般来说,MLC 3年到5年的寿命。SLC 更长。

3: SSD 与文件系统

现在还没有一个能够针对 SSD 的磁盘碎片整理程序,请千万不要使用任何SSD生产厂家提供的程序以外的磁盘碎片整理程序整理 SSD。

这里说 Mac OS X Extended (HFS+) 文件系统。这个文件系统,对于 20 MiB 下的文件有自动的磁盘碎片整理的功能,这个你是无法干预的,当然,对于 SSD 性能没有本质影响。除了这个功能外,还有一个记录文件访问时间的功能 (Access time). 这个功能与性能有关。文件系统通过记录每一个文件的Access Time,从而计算得出那些文件属于 Hot Files (热点文件),当一个文件拥有了 Hot Files 的资格后,文件系统会自动将此文件向磁盘卷的前部移动,甚至将此文件添加到磁盘卷元数据树中以便提高访问性能。但是,这个功能对于HDD来说是有很大效果的,墓唤档痛排

Allocation Block与SSD RAID,默认状态下,Snow Leopard 是每个volume最多 2^3 2个 allocation block。每个 block 4KB(默认),这也就是说,平常我们为什么在意4kb随机读写的原因。但是raid后,由于多加了一层硬件(或者软件层),这个allocation block是一个可选的范围,比如32KB,64KB,128KB等等,区块的大小直接影响了4KB随机读写的效率,CPU占用率,磁盘占用率等等数据,说白了,就是一个 空间,时间和效率 的均衡问题,,,,对于软 RAID 来说,区块过小,CPU占用率高,导致系统性能下降,区块过大,导致磁盘利用率低下。而且,由于软疾愕拇嬖冢 贾耂SD的4KB随机读写性能暴降。硬RAID也有类似问题。

这里就先说这么多,希望对各位有帮助。


第三篇 : 
通过设置HPA提高intel MLC SSD硬盘的写性能
我们知道intel MLC SSD硬盘随着使用会产生很碎片,随着碎片的增加性能会大大降低。intel的工程师介绍可以使用HPA技术保留一部分空间给SSD硬盘内部使用,这样可以有效的降低碎片。 
先介绍一下什么是HPA:
HPA是"host protected area"的缩写,通俗的理解就是设置读取的硬盘最大的扇区号,从而把高端的内容隐藏起来,这个最大的扇区号能够写在硬盘的某个地方,因此即使你把这个硬盘挂到其它机器上,正常情况下你也看不到隐藏的内容,fdisk,pqmaigc之类的工具也把这个硬盘当做一个稍小容量的硬盘。HPA是ATA的标准,ATA-4就包含了HPA,这个标准需要在HDD的 Firmware支持的。 
在Linux下使用新版本的hdparm工具可以设置HPA,Rhel5.X下自带的hdparm工具版本太低了,不能设置HPA。可以从sourceforge网站上下载hdparm工具:http://sourceforge.net/projects/hdparm/,我下载的版本是hdparm-9.27.tar.gz,下载后放在/usr/src目录下: 
#cd /usr/src 
#tar zxvf hdparm-9.27.tar.gz 
#cd hdparm-9.27 
#make 
#make install 
这样就安装好了新版本的hdparm, 
检查hdparm的版本是否是新版本: 
#hdparm -V
hdparm v9.27 
注意设置HPA会导致硬盘上原先的数据被破坏。 
查看HPA的设置: 
#hdparm -N /dev/sdh 
/dev/sdh:
 max sectors   = 146800640/312581808, HPA is disabled 
可以看到HPA是关闭的。 
设置HPA,160G的SSD盘按2^30bytes/GB的话,大小为149GB,我们的的硬盘大小设置为120GB,留29GB给内部使用。 
  
注意:设置HPA时必须保证硬盘没有被使用,同时设置完HPA后需要重新启动机器才能生效。 
#hdparm -N p251658240 /dev/sdh 
/dev/sdh:
 setting max visible sectors to 251658240 (permanent)
Use of -Nnnnnn is VERY DANGEROUS.
You have requested reducing the apparent size of the drive.
This is a BAD idea, and can easily destroy all of the drive's contents.
Please supply the --yes-i-know-what-i-am-doing flag if you really want this.
Program aborted. 
由于这个操作是会导致盘上的数据全部丢失,所以hdparm会警告你,需要加 --yes-i-know-what-i-am-doing ,才会真正设置HPA。 
  
#hdparm -N p251658240 --yes-i-know-what-i-am-doing /dev/sdh 
  
命令中的pNNNNNNN中的P表明是持久化设置。 
  
  
重新启动Linux。 

检查设置是否成功: 

#hdparm -N /dev/sdh 
/dev/sdh:
 max sectors   = 251658240/312581808, HPA is enabled

第四篇 : 

通俗解释SSD磁盘碎片

前面我们已经系统的解释了均衡磨损算法、磁盘碎片等概念,不过我们有点担心说的太过潦草,让人不明究里。下面,我们就用大家都熟悉的学生宿舍居住方式,来解释SSD磁盘碎片的产生,以及为何会影响性能。

    我们知道,SSD硬盘内部是按照BLOCK的方式来划分区域的,一个BLOCK拥有4个PAGE,一个PAGE的容量一般是4KB。如果把它看做是学生宿舍,那么情况大概是这样,一幢宿舍楼有若干层(BLOCK),每层有4个房间(PAGE),每个房间住4个学生(一个人相当于1KB)。

    在正常情况下,每个宿舍都应该是住满了4个学生后,再开辟一间新的宿舍,这和采用均衡磨损算法的情况完全一样。不过,在所有宿舍都住上学生后,问题就出来了。

    每个宿舍的学生不会是完全稳定的,比如过些日子,某些宿舍的某些学生离开学校了。那么他就空出了床位,而学校也会安排新生住进去。可是,就是在安排新生住进去的时候,管理宿舍的人就有点迷糊了,因为每个房间都曾经住过学生,哪些房间会有空床呢?

    就在宿舍管理员还没彻底搞明白前,校长办公室又来指令(均衡磨损算法),宿舍必须一个接一个住满学生。可怜的管理员彻底晕了,他只能重新彻底再次编排一下宿舍,把所有学生都叫出来,然后再一个个安排进宿舍。如果这种事情发生在SSD硬盘上,结果明显,那就是系统速度慢下来了,因为内部正在进行数据整理。

    当然,问题还不仅如此,当管理员好不容易重新安排了学生宿舍后,学校班主任要求管理员把他们班的学生都找出来上课。而在之前的宿舍重新调整行动中,这个班的学生分散在整个大楼所有楼层若干房间中。要想通知到他们,管理员必须从一层爬到最高层。如果这体现在SSD硬盘中,结果就是应用软件运行速度很慢。如果用硬盘术语,这就是磁盘碎片太多,影响软件效能。

    从上面的描述来看,当SSD硬盘容量基本用完时,混乱最容易发生。因为管理员(SSD硬盘控制器)、校长办公室(均衡磨损算法)、班主任(应用程序)三者不停在发生冲突。如果硬盘很空,那还要安排一些,大不了就是多占用一些宿舍,起码不容易出现反复调整数据结果的情况。

    那么,从上面来看,有没什么好的方法解决这个问题呢?目前来看,可以减少每个宿舍住的人数,比方做到1KB/1 PAGE。但是这样一来,宿舍管理员日常的任务就重了,管100个宿舍就不轻省,管400个宿舍,每天就更加不容易。

    当然,如果没有均衡算法捣乱也会好很多,见缝插针,那个宿舍空就去哪个,但这样又不能保证SSD使用寿命。

    总之,磁盘碎片的问题目前对于SSD来说,还是一个非常难解决的问题。也许增加系统缓存是一个好方法,但如果没有好的算法(管理方式)之前,恐怕也不会有很好的结果。我们还是要期待上游厂家能够有更加天才的设计,不过无论如何,SSD前景还是光明的,毕竟没有哪款产品一出现就没有任何问题,而且我们先前讨论的情况也非常极端,用户未必就一定能碰到。


第五篇 : 

我的固态硬盘怎么越来越卡。

一开始用的时候还挺快的。很爽,不过现在,容量和刚开始做完GHSOT时差不多,却越来越卡。
用磁盘碎片分析工具,提示不需要整理。
30G 山寨版的SSD 
有解决办法吗?
把簇改成512个字节,基本上不卡了。看来SSD硬盘是同时写入多个簇的,当容量占用过高时,可供写入的簇选择性变差。所以容易出现假死状态。



【参考】
http://pterodactyl.iteye.com/blog/408130
http://www.diybl.com/course/6_system/linux/Linuxjs/20100226/195951.html
http://hi.baidu.com/view520/blog/item/fffaca1b184cd50a8718bf7e.html
http://we.pcinlife.com/thread-1142929-1-1.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章