写入悬崖现象只发生在SSD盘上吗?

写入悬崖现象只发生在SSD盘上吗?

首先,我对磁盘还不熟悉,只知道一些基础知识。我正在尝试提高 I/O 繁重的软件的性能,我需要了解我的 SAS 磁盘在读写速度方面的工作情况。

我做过非常基本的读写测试,注意到似乎存在“写入悬崖”。磁盘有几 TB 的存储容量,它们连接的机器有 630GB 的 RAM。我的测试表明,在约 200GB 的密集写入后,写入速度从约 2000MBps 降至约 300MBps。

我猜想某种大型缓冲区或缓存在某个时候会被填满,从而导致写入速度降低。这究竟是怎么回事?我如何计算它的大小?它是可配置的吗?

答案1

对于直接连接的 SAS 阵列来说,300M/s 是完全正常的写入速度。高于该速度的一切都是由操作系统缓存造成的。

如果不知道您的应用程序在做什么,就很难说,但在许多情况下,O_DIRECT打开文件时使用该标志会给您更现实的行为:它使系统绕过缓存并直接进入磁盘控制器,从而消除缓存伪影和写入悬崖。

当然,这是以降低写入性能到 I/O 硬件的实际水平为代价的 - 但这正是关键所在:您不能以可持续的方式以比磁盘子系统允许的速度更快的速度进行写入:缓存对于突发写入负载有很大帮助,但不能永远克服底层硬件的限制。

相关内容