Ubuntu - 软件 raid-1 性能不一致

Ubuntu - 软件 raid-1 性能不一致

我正在使用带有两个物理磁盘的软 raid 1 安装新系统。在运行一些测试时(等待初始同步完成后),我发现硬盘速度非常不一致。

我的测试非常简单:使用 cp -r 复制大约 1GB 的 jpeg,然后删除它们并检查花费了多长时间。

for i in {1..5} ; do
  echo ".. start run $i"
  time cp -r public public2

  echo "... deleting duplicate"
  time rm -rf public2

  sleep 1
done

在整个测试过程中,偶尔过程似乎会短暂地“挂起”,不响应 ^C 并且(如下面的结果所示)导致数十秒的延迟,此时顶部报告“等待 I/O”在 20% 到 70% 之间,并且控制台变得迟缓,甚至没有响应。

以下是约 1GB 的 jpg 图像的结果:

        copy       delete
run 1   1.336s     35.929s
run 2   2.300s     50.737s
run 3   2.358s     26.562s
run 4   0.971s     23.717s
run 5   17.485s    27.074s

速度显然差别很大。我多次运行这组 5 个测试,每次都出现这种情况,尽管不一定在同一次运行中。在显示的结果中,延迟最常发生在删除期间,但这也有所不同。

稍后再进行另一次尝试,使用较小的数据集(~600MB):

        copy       delete
run 1   11.614s    36.403s
run 2   0.630s     0.208s
run 3   0.652s     14.891s
run 4   0.676s     0.192s
run 5   0.640s     0.213s

使用较小的集合时,延迟发生的频率会大大降低,通常会毫无延迟地通过全部 5 次运行。

再次尝试使用更大的数据集,大约 1.5GB:

        copy       delete
run 1   26.687s    22.336s
run 2   38.336s    22.466s
run 3   44.711s    20.473s
run 4   41.269s    22.721s
run 5   41.592s    26.499s

这里几乎每次都会发生延迟。

我以为是硬件故障,但我启动了救援提示,手动安装了一个驱动器并进行了相同的测试。这次结果完全一致,而且速度很快。

任何想法都会受到赞赏,因为我很茫然。

答案1

你有 2 GB 的 RAM?600MB 在 0.6 秒内就是 1GB/s,这是一个非常快的磁盘。系统使用后写来更快地将控制权返回给用户进程,但是当系统缓冲区不足时,用户进程必须等待数据写入。

此外,删除通常对于内核来说是一项密集操作,它不会给用户进程太多的运行机会

相关内容