我挂载了一个NFS导出,并启动了一个过程,我希望将大量的数据写入共享磁盘。 共享磁盘的速度非常慢,我杀死了这个进程,但输出驱动器的机器上的IO在那之后保持了90分钟的高速。
在NFS数据链中哪些数据已经被caching了?我能做些什么来阻止它被写入磁盘?
这是一个有趣的问题。 这很难回答,因为它很不稳定,取决于:
一般来说,服务器caching写入操作是完全正常的。 RAID写入的惩罚是相当高的,你可以通过高速caching和合并写入操作来缓解这个问题。
另外一般情况下,从高速caching中“挂断”或者以其他方式中止挂起的写入也是非常困难的,因为这样做有各种不愉快的后果。 (如数据损坏)。
如果导出机器上的IO很高,那么这可能是磁盘出现故障的标志 – caching中的数据量可能相对较less,但写入失败并重试。 (因为如果它在'caching'中丢失,这不是一个选项,因为你已经说过你'已经')。
它将在哪个caching很难猜测。 有多层caching。 但我不希望高速caching持续高达90米 – 高速caching中的数据是不持久的数据,因此更容易受到电源故障的影响。
*对于每次写入RAID6,控制器必须读取:覆盖块,2个奇偶校验块,重新计算,然后重写所有3个块。 这意味着每写入6个写入操作。 如果你正确地分组你的写入,这个问题显着减less。