Archive

Posts Tagged ‘SSD’

SSD-艰苦卓绝的优化历程(3-MFT-成功)

2010/02/01 发表评论

002.jpg

所谓的苦尽甘来,其实就是关于SSD的MFT优化的这一步。

MFT,Managed Flash Technology,很多人说,没有了它,SSD就是废物一块。虽然有点极端(至少在Windows 7下并非如此),但是,我一个星期的惨痛折腾经验却很明确地证明了这一点。

也许你会认为我在上一篇文章中所说的优化方案其实有多么多么的好,可是,在我自己的这一台P7230面前,以前的那些优化方案的确起不到太大的作用。

MFT是EasyCo LLC研制的,他们在《Windows and Linux Installation Instructions》中这样描述SSD以及他们的MFT技术:

Flash SSDs commonly random write 500 times more slowly than they random read. As a result, Flash SSDs often spend 98% or even more than 99% of their IO time doing writes, and only 1% to 2% performing reads. MFT technology often results in overall random read/write performance gains that are typically 70- to 150-fold based upon average data sizes. Though twenty to a hundred times faster at random reading than Hard Disk Drives (HDDs), SSDs by themselves are generally slower than Hard Disks because of their very slow random write speeds. But with MFT, even very ordinary Flash SSDs are often ten to fifteen times faster than the fastest Hard Disks made, and 50 to 100 times faster than the Hard Disks commonly found in Laptop and Netbook computers.

大意就是说,SSD的随机写入性能大约比随机读性能慢500倍,所以,SSD经常要花98%甚至是超过99%的I/O响应时间用于写入,而仅仅用1%到2%的时间用于读。MFT技术在平均数据容量条件下可以获得70-150倍的性能提升。尽管SSD的随机读取速度是传统硬盘HDD的20-100倍,但是,由于糟糕的随机写入性能,使得SSD的整体性能往往还不如HDD。但是有了MFT之后,即使是普通的SSD也能比最快的HDD快出10-15倍,大部分时候,我们在笔记本电脑和便捷电脑往往可以达到相较于HDD 50倍的速度提升。

非常诱人的介绍和数据,不过我至今没有使用任何的硬盘数据测试软件测试过MFT使用后的效能,还是那句话,我只相信我眼前打开的这么多程序及其运行效率。那么,来看看MFT的运作原理吧:

MFT is a software solution for both Linux and Windows platforms which accelerates the random write performance of Flash Solid State Disks (SSDs) by converting traditional random writes into clusters of writes which are expressed as linear writes into free space. The new location of these written elements is then preserved both in a memory table and within the metadata of the writes themselves.
MFT reduces data integrity problems. It writes all data in the order in which it was received: First-in-first-out (FIFO). Similarly, accumulated data is written within a half second of when it is received. Thus, there is no need to have a forced flush process on shutdown. All MFT does is write more data faster, assuring that data is on disk rather than in the limbo of main system memory. This rapid flushing also often contributes to improved read performance in that more memory is available to handle reusable reads.

MFT是在Windows和Linux平台下,改善SSD随机写入方式的一种解决方案。传统的随机写入方案是直接将数据写入簇(SSD慢的原因就在这里,因为这个时候SSD需要预先擦除原先写入的数据才能再次写入),而MFT可以通过存储在内存表里的磁盘位置,在SSD的剩余可用空间中连续写入数据,以此达到大幅度提升随机写入性能的效果。
(第二段不翻译了,也是介绍MFT提升读写性能的东西……)

000.jpg

正如上一篇介绍过的内容所说,MFT针对Windows Xp的优化方案有以下几种,分别适用于不同的情况:

1、克隆Windows XP系统到SSD上(需要另一个与SSD相同接口类别的硬盘)
2、在现有SSD中制作镜像
3、在现有系统条件下,制作一个MFT分区并使用(个人认为,这其实并不算一类优化)

其中,第一种方案针对的是原有操作系统,但是又不想重新安装并且改变已安装软件的,第二种方案针对没有第二块硬盘的使用者,第三种方案针对已有操作系统,但是只想建立一个速度性能极佳的SSD分区的使用者。
个人认为第一种方案和第二种方案效果差不多,而第三种方案则只是增加一个高性能存储空间而已,意义并不大。
我自己采用的就是第一种方案,安装环境非常干净,制作的镜像也很完美。当然,由于一开始对软件不熟悉就着急操作,而且我有些设置和软件实在不愿意重来,因此我只好采用繁杂无比的第一方案来保留原有系统,其实第二种方案更好,还支持多分区,如果你不是非要保留原有XP系统以及软件的话,建议采用第二种方案,而且还不需要第二块硬盘的支持。同时,如果是正版XP操作系统,强烈推荐方案二,因为方案一显然需要一个更换硬盘的过程,这样一来系统的激活就会出现问题,需要非常麻烦的CPL拷贝过程。以下简单介绍一下第一种方案的优化过程:

1、在HDD的Windows XP下安装MFT,并激活(激活需要重启–MFT是付费软件,激活是要付钱的,不过你要是有Keygen除外)。
2、关机,将你的SSD通过硬盘盒(笔记本)或者通过主板上的数据线连接至电脑上,打开”磁盘管理”工具,删除所有SSD下的磁盘分区。
3、启动MFT,选择Migration工具,依次操作。
4、完成之后,将SSD设为主启动盘,重启。
5、现在可以激活你的操作系统,并安装软件。

安装完成之后,SSD启动,发现系统中出现C盘和W盘两个分区,同时还有11.1G左右的隐藏分区。

111.jpg

W盘是主启动盘,也是未经MFT优化过的分区。这是MFT特点之一,MFT优化过的分区不可作为Windows系统启动盘:MFT a Non-bootable Volume,这里面的主要原因在于windows无法在没有MFT驱动的情况下识别经过MFT优化过的分区–The reason for this is because MFT formats data in a manner that cannot be recognized by windows during the initial boot sequence.,所以,MFT只能在安装了MFT驱动之后的Windows操作系统之下运行,这样一来,Windows系统本身当然不可能被MFT优化。W盘里仅保存着Windows文件夹,当然,在资源管理器界面下,你还可以看到Documents and Settings以及Program Files等其他系统文件夹,但这些文件夹实际上已经存放在了C盘,W盘只是一个映射和镜像,不过,在注册表里,很多系统文件夹的设置依然指向W盘,不过不用担心,其实这些文件届时都会存在MFT优化过的C盘;不得不提的是,软件安装过程中必须写入Windows文件夹的文件,比如dll动态链接库,或者是硬件驱动,还有一些Windows Update文件,这些还是会写入W盘的Windows文件夹。

222.jpg

C盘是经过MFT优化过的分区,保存着W盘之外的任何文件,而且,不支持再行分区。所以,MFT克隆方式优化的系统,只有一个分区C可供使用,W分区最好不要乱动。为了解决数据分区存放的问题,我是通过虚拟分区程序Subst将C盘中的两个文件夹虚拟出来作为D盘和E盘。其实,分区本身就只是问了数据管理的方便,在HDD时代,还有数据保护的味道,防止磁道损坏和碎片文件,但是,SSD的特点就是闪存和零寻道时间,没有必要再像HDD那样做物理分区了,虚拟分区足够,因此,只有一个可操作MFT优化分区并非MFT让人难以接受的原因。
11.1G左右的隐藏分区是用来做数据交换的,最好不要随便使用分区软件改变它,否则将导致整个MFT环境下的操作系统崩溃。

好了,这样一个系统就算完成了,完全可以正常使用,而且速度飞快,完全给人耳目一新的感觉。但是在使用过程中,我发现几个问题,需要注意,否则很容易安装失败:

1、HDD源系统最好不要有隐藏的EISA分区(及各大品牌电脑所谓的”一键恢复”的预制隐藏分区),如果有,也请将它删除。虽然官方的说明文档中说EISA没有问题,但是我没有成功。原因就是隐藏分区默认在Partition1,而系统盘C盘则只能在Partition2,这样,在SSD本身并没有EISA。默认情况下MFT复制系统过程中会预留一个很小的分区以适应EISA,以确保系统盘的Boot.ini的启动分区可以使用Partition2,但是我尝试了两次都失败了,因此,既然你要换SSD,还是删除HDD里面的EISA分区吧,留着也没什么用。实在不行,就用GHOST的DISK To IMAGE先备份出来。
2、做好MFT优化以后,最好不要再使用关闭优化磁盘启动以及关闭磁盘预读的优化方案,我曾这样试过,结果导致系统无法登陆。具体原因我暂时还没想明白。当然,我觉得MFT之后,上一篇文章中说的那些优化设置和第三方软件,大部分没有必要再安装使用了。

关于分区,还有一点需要引起注意:

目前在网上,有很多人介绍这样的方案:直接在SSD上分一个很小的分区(5-8G),剩余空间暂时不分区,作为”未分配空间”预留,然后在小分区上干净安装Windows XP,接下来在MFT上建立几个MFT优化分区,接下来通过修改注册表的将Documents and Settings以及Program Files手动移植修改到MFT分区(中间省略N步WinPE等文件复制转移过程)。这种办法很容易造成系统不稳定,而且效果并不好。其实,MFT本身已经提供了这样的功能,而且可以完美制作Documents and Settings以及Program Files文件夹的镜像,根本不用手动修改文件夹,那就是方案二。方案二的具体操作如下:

1、在你的SSD上SSD上分一个很小的分区(5-8G),并且删除任何其他分区。然后再这个小分区上安装操作系统。
2、装好系统后,安装MFT,激活(需重启)。
3、运行MFT,创建MFT优化分区(可以建立多个,不过一定要确保其中一个用于存放系统文件夹的分区空间足够)。
4、使用Migration命令创建系统镜像(其原理和效果和方案一很类似,都是将启动盘改成了W盘,其他文件映射到C盘)。
5、完成Migration,重启。

这样一来,你就有了一个存在着多个MFT分区的操作系统,而且不用两块硬盘倒来倒去,是非常适用的优化方案。当然了,如果你想保留原有操作系统,也可以采用方案二,但是如果你的系统文件很多的情况下,还是不建议使用,除非你的SSD空间足够大,以确保你能顺利移植文件(这种情况下,还是现将数据备份到其他媒介上,然后干净安装操作系统)。

最后提一下方案三,我觉得根本不用考虑这个东西,因为对系统基本没有优化。当然,你可以利用MFT的读写速度,将系统的TEMP,虚拟内存,以及IE等浏览器的临时文件放入MFT分区以加快系统速度,不过,这样一来意义并不大。

好了,这就是我这一个星期最终的优化结果。我自己总结了一下,MFT软件的特点大概如下:

1、改变随机读写为线性读写(联系读写)
2、可以增加SSD的寿命
3、MFT需要对分区进行优化操作,但不支持Windows系统启动分区(MFT a Non-bootable Volume)
4、MFT优化过的分区在WinPE里面或者挂在其他HDD系统下根本无法读出,所以,请注意重要数据的备份(可以通过GHOST解决,并通过GOSTEXP读出来)
5、MFT需要占用一定的内存,不过并不多–The MFT drives uses kernel memory to store mapping tables. This is about 0.12% of the drive’s logical, mounted, size. Thus for a 30GB partition, MFT will need about 35 MB of page-locked kernel memory. For partitions up to about 250 GB, this is fine with both 32- and 64-bit kernels. If you are building a server with more than 250 GB of SSD storage, you should use a 64 bit OS

优化告一段落,如果你不怕折腾,又想享受畅快的速度体验,完全可以在你的SSD上尝试一下MFT!

详细的MFT介绍和安装使用说明,包括所有优化方案及详细介绍,请参看:
http://downloads.managedflash.com/documentation/090315_windowsinstall.pdf(英文,PDF)。

Technorati :
Del.icio.us :
Zooomr :
Flickr :

分类: Noteskeeping° 胡記 标签:,

SSD-艰苦卓绝的优化历程(2-失败的优化)

2010/01/30 发表评论

001.jpg

上一篇啰嗦了半天,这一篇主要讲我漫长而又惨淡的失败优化经历。
我对SSD的优化方案,完全是针对XP而言。Windows 7自有一套SSD的优化方案–从某种角度上来说,Windows 7的确是SSD最好的操作平台( 详见《剖析Windows 7优化SSD之三大特征》 )。

如果在google上搜索SSD XP优化的文章,几乎大同小异,无非就是在windows环境下对系统的设置做有限的改良。我一度兴致勃勃的对这些方案一一尝试,但是大多以失败告终,系统运行效率并没有有效地改善。

自己稍微总结一下,各方高手们针对SSD的特点,设置了各种各样的方案,我个人总结,大致又可以分为两个部分三个方案,即如下图所示的1、2、3,三个方案互不共存,但在某些地方比如系统设置方面可以共享。

11111.jpeg

如图所示的三种方案中(不包括Raid,毕竟我的这个笔记本要实现Raid只是一个不着边际的想法),第1号方案在我的电脑上基本以失败告终,个人认为系统状况并没有得到有效改善(优化效果最多30-40%),而最终让我苦尽甘来的就是2号方案,MFT的系统移植模式(将在下篇文章中单独介绍,今天主要说采用方案1的痛苦和失败经历)。

另外说一句,对于网上大量贴出的采用SuperCache等软件优化后的硬盘数据来说明优化的效果,我对此均不太信服。我只相信我的电脑的真实运行状态,这一点,根据我平时的工作需要,我的测试环境就是同时打开以下软件,并运行操作一定的文件:

Macromedia Firework
MS Word 2003
MS PowerPoint 2003
Adobe Acrobat 8.0
Opera

在同时运行这些软件的情况下,完全可以感觉出系统的效能,而不需要任何测试数据(相同的配置条件下,我过去那个出现坏道的硬盘在这种情况下都没问题,跑得很顺畅) 。因此,对于SSD条件下,在不清空内存缓存情况下测试的数据,我觉得存在着一定的水分,不太值得相信。另外,如果电脑在我刚才说的那个运行条件下依然流畅运作,那我觉得数据即使不太好看,也无所谓,毕竟我现在调试的不是游戏机或者图形工作站,而是普通的商务工作机。

【关于方案1】–不采用MFT优化

1、关于分区块的对齐

之所以会出现这样一个优化方案,主要是因为,不管哪一个型号的SSD,其闪存芯片的页/块大小不外乎是2KB/128KB、2KB/256KB或4KB/512KB等几种,而XP自带的分区工具将磁盘的起始位置放在LBA63(起始位置之前保留512Bx63=31.5KB)的分区方式,这样一来,XP分区模式下的NTFS分区(4KB/簇)每32、64或这128个簇,就会有一个簇跨越了两个闪存块,使得当OS正好对跨块的簇进行读写操作时,会降低读写数据的效率。

这个道理清晰明了,操作也不难(不过有点麻烦),将SSD系统盘挂在Windows Vista/7下面分区,或者在WinPE系统下使用Disk Genius工具分区,然安优化装系统即可。但是,我觉得作为一个优化方案,实际上这个操作可有可无,他对系统的优化远远没有想象中的好。实在有兴趣的朋友可以去看一下这一篇文章:( http://www.51nb.com/forum/viewthread.php?tid=924167 )。

2、BIOS:关闭AHCI,这一点好像是共识,就不多说。

3、XP针对SSD应作的优化:

试看目前占据主流的针对SSD的系统设置内容:

1、禁用磁盘碎片整理
2、关掉系统的预读(Prefetcher)功能
3、关掉SSD硬盘的”写入高速缓存缓冲区刷新”(也有一些人说要打开……这一点我很有疑问,如果是SLC的SSD,自带缓存的,该如何设置?看来要好好研究一下底层硬盘技术)
4、优化NTFS分区:关闭8.3文件名,关掉文件时间更新(Last Access)
5、关掉系统休眠(Hibernation)
6、关掉索引(Index)服务和搜索(WIndows Search)
服务
7、禁用虚拟内存(当内存>2G时),或者将虚拟内存移植到内存或者其他硬盘上
8、关闭系统还原
9、……

以上这几样,都是针对SSD的特点而生的优化方案。其中,”禁用磁盘碎片整理”、”关掉索引”、”关闭搜索服务”这些,基本上是为了减少SSD无谓读写,提高寿命而非完全提高性能。因为SSD本身的闪存特性,其磁盘碎片的模式和机械硬盘不太一样(需要用专门的工具加以清理),而预读、索引和搜索服务,鉴于”零寻道时间”的特性,本身就不需要。但是,我们都忽略了一个问题,这些优化设置,或许对SSD的寿命有极大地改善,但是,究竟对性能会有多大改善呢?在大部分的计算机应用中,以上这些服务并不绝对占据系统资源的主流,关键还在于主要的OS系统程序和第三方软件的调用速度,这些才是性能的主要来源。因此,通过变相的提升寿命,仅仅通过节流的方法来提升性能,是不够的。

因此,在这种条件下,就需要第三方的优化工具登场。

4、采用第三方工具优化读写

RamDisk可以说是天才的发明,他不仅在SSD上可以使用,也可以在普通硬盘上使用。作为一个内存虚拟分区软件,的确可以利用虚拟内存的速度,来提升系统的运行。不过,运行RamDisk必须有一个前提,内存必须足够大,我个人认为最好必须要有3-4G的内存方可操作。
而像我手里这一台P7230,主板最大只支持2G,我试着用RamDisk分配出512M内存作为虚拟盘,并且将系统和用户的Temp文件夹、虚拟内存(256M)全部移植到了虚拟盘上,但是,不但没发现系统快了多少,倒是经常出问题。
首先,Temp文件夹在安装软件的时候经常动不动就空间不够用,需要重启,这还可以接受,因为毕竟你不会经常安装大型软件,或者解压非常大的压缩包;
其次,虚拟内存经常不足。不少网友建议干脆关闭虚拟内存,但是,XP根本无法禁用虚拟内存,即使你设置小了或者干脆禁用,但是如果系统需要,他还会强制性的在系统盘生成一个页面文件(这一点,不知道能否通过注册表修改)。况且,禁用虚拟内存还会导致Photofast等图形处理软件无法顺利运行;
第三,我并没有按照大家的建议,将IE、Opera等得临时文件放入虚拟内存盘,而是放入了我的SD卡。虽然对SD卡有一些伤害,但是我觉得浏览数据还是必须的,对于加快浏览速度很有好处,并且,浏览器的访问速度局限根本不在于硬盘读取速度,还是在于网速。我把浏览器临时文件放入了SD卡之后,浏览器访问速度依旧,丝毫没有下降。
对RamDisk的总结:东西是好,但是你得有内存啊。对于某些无法升级内存的朋友来说,RamDisk无疑有点像香格里拉的雪山,漂亮,但是却无法长期定居。

SuperCache和FlashPoint。网上不少朋友说这两个软件对系统性能的提升是非常显著地。很可惜,不知道是不是我的电脑水土不服还是其他原因,我并没有在这两款缓存优化软件上获取到任何好处和帮助。SuperCache和FlashPoint的原理,说起来,就是利用内存,来暂时存取硬盘上的文件,作为预读或者预写,并且通过这个预读和预写来提高系统效率。我从一开始就不太喜欢这个软件,因为从根源上来说,不管如何设置,SuperCache和FlashPoint终究只是一定程度上延缓了对SSD的读写,并没有减少SSD的读写。况且,在系统运行非常忙碌的时候,这种延缓根本无法对系统性能进行提升。或许那些不需要运行多少大型软件的上网本对此非常适应,因为给每个分区设置的128M乃至是512M的内存缓存,将会对系统性能有极大提高。但是,对于我这种使用者,没什么效果。比如你运行一个文件,你的缓存都写满了,这个时候你的工作还没完成,但是SSD已经开始读写操作了,这样的话系统还是很慢,而且还很消耗CPU资源……真拗口,总之就是慢。

注:RamDisk、SuperCache和FlashPoint在SSD的优化文章中是被提到最多的,向看安装说明的话,google里很多。

Diskeeper下的Hyperfast工具我装了,一直在后台运行,还不知道效果如何(据说是恢复SSD性能的软件,感兴趣的可以看一下这一篇文章:http://www.cnbeta.com/articles/74838.htm)。

最后,说到让人又爱又恨的SteadyState。这是一款Microsoft自己出的”影子系统”软件(因此需要正版验证,所以D版的朋友就不要考虑了),其原理就是通过虚拟出系统盘上一块空间原来存放硬盘的修改数据,然后在开机重启的时候进行数据修改,以至于很多人利用这一个特性,用来优化SSD的读写性能。装了SteadyState之后,系统的确快了很多(这就是连续读写的好处),但最终我还是放弃了它,原因大概如下:

1、需要牺牲系统盘的空间(我本来硬盘就小,难以忍受)
2、系统不能断电或者当机,否则一天的工作都将白费,即使你保存了文档也没有,开机后一切归零,这就是”影子”的特点
3、每次重启都得进行两次,第一次修改你更改过的数据,第二次才是正常重启,也就是说每次重启都要在5分钟以上,这对于一个SSD的使用者来说实在无法忍受

对于失败的总结

以上这几点方案,基本都是围绕着不对Windows XP进行大手术的前提下进行的,但就我个人的使用经验来看,如果没有替代的方案,则不失为一个“矮子里挑将军”的选择。但是,如果你的内存实在无法升级,又不用忍受系统启动的漫长等待,那我觉得这些方案基本都可以抛弃,还是选择MFT吧。我个人就在MFT上成功了,系统运行有质的飞跃! 下一篇,我就讲写到关于MFT的优化方案。

Technorati : , , , ,
Del.icio.us : , , , ,
Zooomr : , , , ,
Flickr : , , , ,

加关注

Get every new post delivered to your Inbox.