磁盘速度如何测量?每秒读取的速率是 Mbit 还是 Mbyte?目前的平均速度是多少?业内最快的速度是多少?
假设有人说复制一个 1500 GB 的文件(比如数据库文件)需要很长时间,那么在专业系统上需要多长时间,以及如何计算并考虑硬盘速度?
答案1
磁盘速度通常以以下方式测量;
- 旋转速度以每分钟转数表示(最低为 4200rpm,然后是 5400、7200、10k 和 15k - 这不适用于 SSD 或闪存)。
- 接口速度是磁盘电子设备尝试将数据发送到磁盘控制器的最快速度(范围从 ATA 的 100MBps 到 SATA 的 150/300/600 Mbps、光纤通道的 2/4/8/16 Gbps,甚至到基于闪存的存储(如 FusionIO)的 PCIe 速度)。
- 寻道时间只是开始读取或写入磁盘特定扇区所需的时间 - 对于磁盘来说,该时间范围从 3-15 毫秒到 SSD/闪存盘的一小部分。
- 然后我们来看看您可以预期的实际速度,您应该关注四种速度:顺序读取(读取非常大的数据块)、顺序写入(相同但写入)、随机读取(从整个磁盘获取数据)和随机写入。这些速度差别很大,但对于旋转磁盘,您可以预期顺序读写速度为 25MBps 到 150MBps,随机读写速度为 3MBps 到 50Mps。SSD 顺序读写速度通常在 200MBps 范围内,随机操作速度通常略低。FusionIO 可以轻松达到 1GBps,但通常体积小且价格昂贵。
正如你所见,没有真正的平均值,如果你想要购买建议,请随时与我们联系尽可能多的信息- 这应该包括预算、应用程序类型、数据集大小、用户群、硬件/操作系统以及您认为有用的任何其他信息。
至于您的 1.5TB 副本,如果您对 USB 2 连接的 7200rpm SATA 磁盘执行此操作,您应该至少获得 30MBps-40MBps 左右,完整的 1.5TB 可能需要 10 小时左右。如果这是一个典型的专业 DAS/SAN 系统,我预计在 100MBps 左右,这意味着它大约需要 3 个小时。
希望这有帮助,哦,只是为了澄清,MB=兆字节,Mb 是兆比特。
答案2
这类计算涉及很多变量。现实世界的磁盘系统有很多相互依赖关系。仅在一台计算机中:
- 驱动器本身的实际额定速度(通常为 RPM,5200、7200、10K、15K)
- 正在使用的文件系统
- 是否正在使用 RAID 系统
- 如果是,则 RAID 卡的性能
- RAID 类型
- 使用的操作系统
- 读取和写入操作具有完全不同的性能特征
- 操作的读/写比率
- 对于顺序操作,存储的碎片因子
如您所见,磁盘本身的速度只是众多因素之一。这是一个相当大的因素,但仍然是众多因素之一。如果 1.5TB 的副本全部放在同一个磁盘上,那么该磁盘将(95% 的可能性)执行 100% 随机读/写性能,这通常会产生最差的性能指标。如果副本是从一个磁盘复制到另一个磁盘,并且数据是 100% 连续的,并且目标磁盘完全是空的,那么这应该会在这个磁盘子系统中产生最快的性能。现实世界的性能将介于这两个极端之间。
如果在两个独立的服务器之间进行复制,则涉及的因素会更多。
我工作时有一个存储阵列,在执行大量连续操作时,3Gb(千兆位)SAS 通道可能会饱和。如果我有 6Gb SAS,它可能也会非常接近饱和。对于随机 I/O,此特定系统的性能因操作系统的不同而有很大差异(例如,OpenSolaris 的随机 I/O 最差,而 Linux XFS 是最好的,比它好 3 倍)。
变量太多,无法明确回答这个问题。
答案3
复制 1.5TB 数据需要多长时间,很大程度上取决于数据的类型。如果你有几 1,500 个 1GB 文件,可能只需要几个小时,但如果你有十五亿个 1KB 文件,可能需要几天时间。
这是因为光盘上有两个相互竞争的规格:吞吐量和平均访问时间。具有 100MB/秒吞吐量和 10ms 访问时间的传统光盘相当常见。如果您可以按顺序传输数据,则可以获得 100MB/秒。但是,如果您需要跳转到另一个位置,则需要 10ms。如果您进行流式传输,您可以在跳转到另一个位置所需的时间内写入 1MB 的数据。
创建一个文件可能需要多次查找,因此,创建 1KB 文件的“成本”可能与传输几 MB 的数据一样多。
因此,在某些情况下,最好对块设备进行原始磁盘复制,而不是通过 rsync 之类的方式在文件系统上进行复制。如果您的文件很多,并且文件系统已满 50% 或更多,那么就所需时间而言,最好只通过“dd”复制完整的块设备。当然,您无法在文件系统已安装时执行此操作,因此这也有缺点。
SSD 可以帮助缓解这种情况,因为它们的访问时间大约快 100 倍,但 MLC SSD 驱动器的访问问题很复杂,具体取决于预擦除块池的可用性。SLC SSD 可以帮助解决这个问题。
具有内置缓存的 RAID 控制器可以帮助进行寻道,就像 flashcache 内核模块之类的东西可以让你通过 SSD 缓存块设备一样。
RAID 系统可以允许多个并行寻道,从而有效地减少平均访问时间,并且还可以并行化以提高吞吐量。但您的整体性能通常取决于涉及的文件数量。