我正在开发一个应用程序,每天捕获大量(1000 万+)非常小的数据块(16 字节)。数据不是连续的(即很多要写入的数据)并且它不是一个恒定的流(有一些安静的时期)。
该应用程序在它前面有缓存服务器,因此读取不是一个问题,我预计在给定的一天只有 1% 的数据是感兴趣的,而 1% 将位于缓存中。只有第一次阅读应该很慢。
我有一个很好但有限的预算,我想要 RAID 1,它使我的磁盘成本增加一倍。
我的选择是:
你会怎么办?或者换句话说,控制器上的大缓存是否在写入方面补偿了较慢的寻道时间?
我们是一家戴尔商店,我在看 R410/R510。
我不确定你会在这里得到有用的答案。我将使用应用程序和预期的硬件执行基准测试,以了解它是如何执行的,因为我怀疑有足够的复杂性,试图对其“封底”建模可能过于简单。
通常,控制器上的缓存可以缓冲写入并允许 RAID 卷更快地响应操作系统。如果您的写入速率超过缓存可以提交到磁盘足够长的时间以填充缓存的速度,则控制器将开始阻止写入(回退到物理磁盘的速度)。
听起来您没有使用现成的数据库管理系统,而是自己管理数据存储。您将不得不评估您的应用程序如何与操作系统缓存管理器和底层文件系统(假设您没有将数据存储在原始磁盘块上)以及 RAID 控制器进行交互。如果您正在使用数据库管理系统,那么很明显,您还必须了解它是如何交互的。
当您说“工作”时,我想知道您是否参与了应用程序的开发。如果是这样,我认为值得研究一种应用程序架构,该架构将传入的写入缓冲到顺序写入的日志中,然后将该顺序日志延迟写入随机访问存储结构。实际上,您将完成与控制器缓存写入相同的事情,但是您可以更精细地控制该过程(您可以明确地为顺序访问日志和随机访问日志对存储进行分层)。
归档时间: |
|
查看次数: |
644 次 |
最近记录: |