复制 Ubuntu 12.10、AHCI 非常慢

Mat*_*Mat 7 ssd hard-drive 12.10 ahci

我有两个磁盘,SSD(三星 830 128GB)和普通 HDD(WD 1TB)和 Ubuntu 12.10 安装。在 BIOS 中启用 AHCI。我在各个方向(三星->三星、WD->WD、WD->三星和三星->WD)的复制速度都非常慢。

让我描述一下我所做的:

sudo hdparm -Tt /dev/sda
Run Code Online (Sandbox Code Playgroud)

结果或多或少没问题:

Timing cached reads:   16678 MB in  2.00 seconds = 8358.48 MB/sec
Timing buffered disk reads: 1362 MB in  3.00 seconds = 453.96 MB/sec
Run Code Online (Sandbox Code Playgroud)

cp在午夜指挥官或在午夜指挥官复制时,我只能获得大约 1MB/s 的传输速度!开始读取一点,并在禁用写入缓存后

hdparm -W 0 /dev/sda
Run Code Online (Sandbox Code Playgroud)

速度达到了 60MB/s 的疯狂速度,这在 SSD 驱动器内部仍然是无用的。

两个驱动器都连接到主板中的 SATA 3 插槽。仅供参考:从 USB Pendrive 复制速度要快得多,所以看起来像是读取速度问题。Windows 不会出现此问题。我粘贴下面的 dmesg:

[ 4898.720381] ata1.00: configured for UDMA/133 [ 4898.720387] ata1: EH complete 
[ 4898.720509] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA 
[ 4983.122199] ata2.00: configured for UDMA/133 
[ 4983.122205] ata2: EH complete 
[4983.122315] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Run Code Online (Sandbox Code Playgroud)

你有什么想法可能是错的吗?

小智 1

看起来您的分区在 SSD 的情况下未与擦除块边界对齐,在 HDD 的情况下未与扇区边界对齐。这就是为什么在复制时会出现问题的原因,复制涉及写入其中一个驱动器,但仅从驱动器读取时不会出现问题。

WD Caviar HDD 具有 4096 字节扇区,但向 BIOS 公开 512 字节扇区以提高“兼容性”。Ubuntu 中的默认分区不会将分区与 8 个扇区对齐,这将导致每次写入都会被驱动器的 512 字节扇区模拟转换为读取和重写。这将完全破坏性能。

SSD 的擦除页大小通常在 128kB 到 1024kB 之间。最好将分区对齐到 1024kB 的倍数。

通常fdisk使用 512 的扇区大小。这意味着您的 HDD 分区应从 8 的倍数扇区开始,SSD 分区应从 2048 的倍数扇区开始。请注意,在启动驱动器上,第一个分区应至少为距驱动器开头 64kB,以便 GRUB 引导映像可以容纳在 MBR 和第一个分区之间。

总而言之,您需要重新分区并重新格式化驱动器。使用fdisk -u /dev/sdaLiveCD 设置以 2048 扇区的倍数开始的分区。设置分区后,您可以使用 Ubuntu 的安装程序对其进行格式化。