我的固态硬盘之路
我热爱小型笔记本电脑。如果你问我的任何朋友,他们都会告诉你,即使是 12 英寸屏幕的笔记本电脑,无论多么酷,对我来说都太大了。我的第一台笔记本电脑是东芝 Libretto 50CT,它大约有 VHS 录像带那么大(对于那些还记得录像带的人来说),从那以后,我陆续使用过富士通 P 系列的 P2110、P7010,现在是 P1610——一款 8.9 英寸的超便携平板电脑。我将这台笔记本电脑作为我的主要机器使用,几乎没有抱怨,但是当我从旧的 10.6 英寸超轻薄笔记本电脑跳到 8.9 英寸的小型平板电脑时,我也不得不从 2.5 英寸硬盘降级到 1.8 英寸硬盘。
对我来说,尤其是在最初,1.8 英寸硬盘并不是世界末日。即使我已经将其他笔记本电脑上的硬盘升级到 5400rpm,但对我来说,为了笔记本电脑整体尺寸的减小,任何性能下降都是值得的。而且,直到最近,我似乎也没有太多选择:1.8 英寸硬盘的最大转速为 4200rpm。然后我听说了固态硬盘。与依赖磁头和旋转盘片的传统硬盘不同,固态硬盘更像是您可能在相机或 USB 密钥中使用的闪存存储。不仅没有磨损的移动部件,寻道时间也快得多,而且我看到的 1.8 英寸固态硬盘还标榜更快的持续读取和写入速度。
虽然我阅读了许多关于固态硬盘的基准测试和轶事,但它似乎总是一个好坏参半的结果。Windows 用户谈论启动时间快得多,整体响应速度也更好,而我阅读的 Mac 评测似乎表明性能差异微乎其微。我没有看到太多关于 Linux 系统的基准测试,而且由于固态硬盘的价格昂贵,我一直在犹豫我愿意支付哪个价位。
有一天,我决定冒险一试,为我的笔记本电脑购买了一块 1.8 英寸的三星固态硬盘。在此过程中,我对旧硬盘和新固态硬盘进行了一些比较基准测试。虽然统计数据可能很方便,但我决定对我的比较采取更实际的方法。我使用了一些标准的基准测试工具,但我大部分的比较都涉及日常任务,以便您更好地了解在 Linux 系统上使用固态硬盘的真实感受。
首先,我应该告诉你正在比较的硬件是什么。所有测试都在我可靠的富士通 P1610 上运行。它配备了英特尔 1.2GHz ULV Core Solo 处理器和 1GB 内存,并运行 Ubuntu 7.10。原来的硬盘是 4200rpm 的东芝 MK6006GAH,我将其与三星 MCBOE32G8APR 固态硬盘进行比较。在合理的情况下,我尝试多次运行测试,以便获得平均读数;但是,只是为了让您知道,大多数测试在尝试之间最终都非常一致。此外,必要时,我在执行后续测试之前重新启动了机器,这样 Linux 可能已缓存到 RAM 中的任何文件都不会影响结果。
对于第一个测试,我使用秒表来计时系统从 GRUB 启动提示符到我的登录屏幕所花费的时间。根据您使用笔记本电脑的方式,您可能每天启动它,或者您可能在两次使用之间休眠或挂起。无论哪种情况,当您想立即开始工作时,缓慢的启动时间都可能很痛苦。启动过程既是磁盘密集型的,又是处理器密集型的,但即便如此,在比较结果时,您会看到显着差异
4200rpm:50 秒
SSD:34 秒
下一个逻辑测试是从登录到可用桌面所需的时间。对于我的笔记本电脑,我使用 Ubuntu 自带的默认桌面环境 (GNOME),但我也在启动时启动了终端、小程序和 Firefox。因此,我的数字可能与您的略有不同,但它们很好地反映了两个驱动器之间的差异
4200rpm:59 秒
SSD:23 秒
哇。虽然我在某种程度上知道旧硬盘启动桌面需要一些时间,但直到这个测试我才意识到它实际上花了将近一整分钟!相比之下,固态硬盘花费的时间不到一半,部分原因是读取速度的提高和寻道时间的快得多,尤其是在随机加载文件时(请参阅下面的 bonnie++ 测试以证实这一点)。到目前为止,固态硬盘看起来还不错。如果您将两个测试结合起来,4200rpm 驱动器从 GRUB 提示符到可用桌面花费了 109 秒——几乎两分钟——而固态硬盘花费了 57 秒——几乎一半的时间。
对于下一个测试,我决定计时解压缩 2.6.22 内核 bzipped tarball 所需的时间。现在,由于这个 tarball 是 bzipped 格式,因此系统的大部分压力将落在 CPU 上,而不是磁盘上。但是,由于大多数 tarball 都是压缩的,并且它是一个非常常见的桌面活动,所以我认为仍然值得比较。结果远不如前两个测试那么戏剧性(由于活动主要是 CPU 密集型的),但固态硬盘仍然比 4200rpm 驱动器快 13 秒
4200rpm:66 秒
SSD:53 秒
许多笔记本电脑用户(包括我自己)在两次使用之间很少启动和关闭系统。相反,他们依靠休眠和挂起功能来保存当前状态并快速恢复到该状态。对于休眠,笔记本电脑将其当前状态写入磁盘并关机。对于挂起,笔记本电脑将其当前状态保存在 RAM 中并保持低功耗状态。由于休眠过程是如此的磁盘密集型,我决定这将是测试固态硬盘是否能带来任何速度优势的好方法。因此,对于第一个测试,我测量了从启用休眠到系统关机的时间
4200rpm:75 秒
SSD:50 秒
同样,在看到数字之前,我没有意识到关闭并保存我的 1GB RAM 需要超过 1 分 15 秒。虽然固态硬盘仍然花了一些时间,但它比旧硬盘快了 25 秒。
我的休眠测试的后续测试是从休眠状态恢复。我一旦在 GRUB 提示符下按下 Enter 键就开始计时,并在我到达锁定屏幕的登录窗口时停止计时
4200rpm:83 秒
SSD:38 秒
这个结果真的让我感到惊讶。固态硬盘在挂起到磁盘时表现优于 4200rpm 驱动器,但在恢复时速度却快了两倍多!当您比较组合测试时,4200rpm 驱动器需要 158 秒才能挂起和恢复,而固态硬盘将该过程缩短至 88 秒。
即使日常基准测试足以让我相信固态硬盘的速度优势,我也知道你们中的许多人也希望获得一些原始数据进行比较。因此,我还对两个驱动器运行了 hdparm 和 bonnie++,结果很有趣。首先,我连续运行了三次 hdparm
4200rpm
/dev/sda3: Timing cached reads: 1842 MB in 2.00 seconds = 921.90 MB/sec Timing buffered disk reads: 64 MB in 3.08 seconds = 20.79 MB/sec /dev/sda3: Timing cached reads: 1814 MB in 2.00 seconds = 907.56 MB/sec Timing buffered disk reads: 64 MB in 3.08 seconds = 20.78 MB/sec /dev/sda3: Timing cached reads: 1794 MB in 2.00 seconds = 897.43 MB/sec Timing buffered disk reads: 62 MB in 3.04 seconds = 20.39 MB/sec
SSD
/dev/sda: Timing cached reads: 1894 MB in 2.00 seconds = 947.80 MB/sec Timing buffered disk reads: 80 MB in 3.07 seconds = 26.02 MB/sec /dev/sda: Timing cached reads: 1894 MB in 2.00 seconds = 947.61 MB/sec Timing buffered disk reads: 80 MB in 3.08 seconds = 26.00 MB/sec /dev/sda: Timing cached reads: 1886 MB in 2.00 seconds = 943.86 MB/sec Timing buffered disk reads: 78 MB in 3.00 seconds = 25.99 MB/sec
如您所见,固态硬盘当然更快;但是,与其他一些测试相比,差距并没有那么大。bonnie++ 的结果显示了不同的情况
4200rpm
------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP 2G 11309 52 11272 3 4921 2 10715 44 11471 2 83.8 0 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 190 2 +++++ +++ 177 1 196 2 +++++ +++ 154 1 minimus,2G,11309,52,11272,3,4921,2,10715,44,11471,2,83.8,0,16,190, ↪2,+++++,+++,177,1,196,2,+++++,+++,154,1
SSD
------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP 2G 18155 94 23125 8 12521 8 20818 94 28149 8 1226 5 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 1128 11 +++++ +++ 1101 10 1158 10 +++++ +++ 449 4 minimus,2G,18155,94,23125,8,12521,8,20818,94,28149,8,1226.4,5,16, ↪1128,11,+++++,+++,1101,10,1158,10,+++++,+++,449,4
嗯,这当然是很多数据。不过,有一些数字确实很突出。在顺序输出和输入方面,固态硬盘的性能几乎是 4200rpm 驱动器的两倍,但在随机寻道方面,它实际上快了 14 倍,每秒寻道次数为 1,226 次!由于没有旋转盘片,随机寻道是固态硬盘真正闪耀的领域之一。下一级别的统计数据比较了在系统上顺序和随机创建文件的速度。正是在这里,我们看到了固态硬盘的另一个巨大优势,因为它在顺序创建方面快了 5 倍,在顺序删除方面快了 6 倍,在随机创建方面快了将近 6 倍。
撇开所有这些数字不谈,您可能会问的问题是:“值得吗?” 对我来说,答案是肯定的。我的系统不仅恢复了过去笔记本电脑的流畅性,而且在磁盘密集型操作期间(例如当我的备份软件启动时)也不再显得卡顿。这让我想起了另一点——噪音。由于没有移动部件,固态硬盘基本上是静音的。现在我的笔记本电脑上唯一的噪音来自风扇。前几天我在使用笔记本电脑时注意到风扇几乎达到了最高速度。过了一段时间后,我决定检查系统温度,看看我的笔记本电脑是否真的那么热。结果证明我的网络备份作业已经启动并在进行 rsync。这是一个 CPU 和磁盘密集型操作,使用我的旧硬盘,我会立即知道它何时启动,因为系统会变慢,我会听到我非常熟悉的硬盘咔哒声。现在,由于桌面的流畅性和固态硬盘的静音性,我甚至没有意识到备份正在进行。
固态硬盘的性能是否对您来说值得取决于多种因素。如果您像我一样被困在 1.8 英寸 4200rpm 驱动器上,那么您没有太多其他选择(尽管 5400rpm 1.8 英寸驱动器应该很快就可以购买),但是如果您有更大的驱动器,主轴转速高达 7200rpm 并且具有 SATA 接口,那么您肯定需要比较可比驱动器的公布速度——当前的固态硬盘可能不会为您提供很多速度优势。还有其他因素需要考虑,包括某些固态硬盘可能提供的潜在节能。此外,由于缺少移动部件,您不仅可以获得更安静的系统,还可以潜在地获得更耐用的系统。不利的一面是,即使采用写入均衡技术,您可以对固态硬盘进行的写入次数仍然是有限的,尽管大多数制造商声称固态硬盘的寿命仍然超过传统硬盘。
如果您确实决定购买固态硬盘,请务必做好功课。现在有很多不同的笔记本电脑硬盘接口,因此如果您有 1.8 英寸硬盘,请务必检查您使用的是 ZIF 连接器还是非 ZIF 连接器。而且,如果您想在 2.5 英寸笔记本电脑中使用 1.8 英寸固态硬盘,请确保存在兼容的适配器(我看到一些卖家将适配器作为捆绑交易包含在内)。
Kyle Rankin 是旧金山湾区的一名高级系统管理员,并且是许多书籍的作者,包括 O'Reilly Media 出版的 Knoppix Hacks 和 Ubuntu Hacks。他目前是 North Bay Linux Users' Group 的主席。