Ubuntu 12.10 上的 SSD 比 Win7 慢得多

Ubuntu 12.10 上的 SSD 比 Win7 慢得多

我的 Dell Inspiron R15 上装有 OCZ Solid 3 120GB SSD,读取速度为 500MB/s,写入速度为 450MB/s。我的主要操作系统是 Ubuntu 12.10(全新)32 位。它运行得相当好,没有死机,总体性能比 HDD 好得多,但是,刚才我注意到复制速度比 Win7 慢得多。在 Win7 上复制 3GB 文件的速度约为 130mb/s,而在 ubuntu 上大约为 30-40mb/s。我想知道为什么会这样。

我遵循了一些指南,这些指南必须优化 Linux 上的 SSD,例如在 fstab 中添加“discard,noatime”,但是,这并没有提高复制速度。它仍然低于 40mb/s。

有什么想法可以解决这个问题吗?

在同一个 OCZ Solid 3 SSD 上启用 ADHCI 双启动(Ubuntu 12.10 和 Win7)(两个分区:A 用于 Ubuntu;B 用于 Win7。无交换)Dell Inspiron 15R I3-380M 6GB RAM Radeon 6560 1GB

答案1

我很惊讶差异竟然这么大。我不知道答案,而且我从未在双启动系统上比较过 I/O,但我有一些想法。

我无法识别您从基准测试程序中得到的错误,但它们肯定不是什么好事。另一个测试是:您的磁盘自我监控数据中是否存在任何异常?(例如,执行gnome-disks并查找 SMART 数据。它是否对所有属性都做出了 OK 评估?)

gnome-disks 还可以运行独立的读写测试。我从未在我的 SSD 上运行过写入基准测试,也永远不会,但读取基准测试总是令人满意的。您是否获得了宣传的独立 I/O 速度?此外,在文件复制期间单独列出读取和写入速度,并与 gnome-disk 基准测试中的那些独立速度进行比较,这可能很有趣。复制iostat -m期间会为您提供这些数字。(iostat 位于 Debian/Ubuntu 上的 sysstat 包中。)这可能不是一个非常实用的建议,但可能会出现一些令人震惊的事情。

您的 Linux 文件系统本身是否状况良好?fsck是用于查找的程序,但在正常工作的文件系统上运行它很困难。我认为最简单的方法是sudo touch /forcefsck重新启动。

假设您没有使用 Ext3,对吧?如果您从旧发行版升级到 Ubuntu 12.10,则可能是这样。Ext3 处理 GB 大小的文件的效率不如 Ext4。也许这是一个因素。mount(仅安装,无参数)将识别正在使用的文件系统。

您可能看到了用于执行文件复制的程序的效果。cp例如,我认为命令不是特别快或高效。(不过我知道您使用的是 GUI,而不是 cp。但这会增加更多变量。您永远不知道程序在其 GUI 背后真正在想什么。)

我无法想象noatime会对单个文件的复制速度产生任何可衡量的影响。(即便如此,我还是在我的 SSD 上使用它。)discard不会有帮助,并且可能会减慢复制速度。discard 你知道,鼓励文件系统尽早处理闪存擦除过程。我不确定它是否在 Ubuntu 12.10 / kernel 3.5 中有效。无论如何,为了获得最佳基准测试结果,最好在测试前对 SSD 进行 TRIMming,这确实可能会对写入速度产生很大影响。sudo fstrim /home例如。

网络上有很多关于其他性能调整的建议。常见的 SSD 建议是调整磁盘 I/O 调度程序和文件系统日志记录热情。以下是线程赞扬数据=写回日志的优点。我认为这个建议有点不着边际,但可能会有所作为。一些日志配置确实会变慢,但您不会意外使用 data=journal。

我到底在说什么?系统性能可能有上千个变量。在我看来,关于复制一个文件的速度,有几个常见的选择:noatime,我看不出来。data=writeback可能。discard肯定不是。fstrim很有可能。fsck也许。除了您提到的令人担忧的基准 I/O 错误之外,我猜 Ext3 或未 TRIMmed 的磁盘可能是您看到的差异的一部分。

答案2

  1. 你使用ext4文件系统(支持 TRIM 的文件系统)
  2. 还要检查 /etc/fstab 中是否有discard挂载选项(启用了 TRIM)
  3. noatime选择也有帮助
  4. Ubuntu 分区是否正确对齐(起始块号应能被 4096 整除)。如果没有 - 速度会受到影响,并且必须使用从实时 Linux 发行版启动的 gparted 重新对齐

相关内容