【问题标题】:C# ThreadPool for writing to SSD disk用于写入 SSD 磁盘的 C# ThreadPool
【发布时间】:2011-03-31 00:01:03
【问题描述】:

我有一个线程池将数据写入 SSD 磁盘。 (Windows XP, c#) 我想选择一个池大小来优化性能。理论上, 更多线程应该提高性能吗? SSD 如何处理并发写入? 还有并发读取吗?

谢谢!

【问题讨论】:

  • 我将投票支持超出下面已经发布的测试结果的答案。

标签: c# windows-xp threadpool solid-state-drive


【解决方案1】:

如果您需要执行随机 io 操作,您可能需要确保您的驱动器在 AHCI 中运行,因为 AHCI 的高并发随机性能通常比 IDE 更快 (见http://benchmarkreviews.com/index.php?option=com_content&task=view&id=505&Itemid=38&limit=1&limitstart=3)。

此评论还表明,并发随机读写(4K-64Trd 结果)比仅使用单线程(4K 结果)更快。

【讨论】:

    【解决方案2】:

    解决此问题的最佳方法是实际分析不同的池大小。您选择的实际设置将取决于您正在执行的 I/O 的性质,当然还有所述 I/O 的并发性。

    理论上,应该表现 通过更多线程来改进?

    与传统的基于主轴的驱动器不同,SSD 具有出色的随机读/写性能,因此(极大地)受益于多个并发线程对其执行 I/O。

    SSD 如何处理并发写入? 还有并发读取吗?

    由于没有移动部件,只是对各种(内存)位置的数据访问,因此需要的随机读取/写入队列非常少,除非超过驱动器的 IOs/s 用于读取/写入。

    【讨论】:

    • 更准确地说:没有并发写入或读取 - SATA 是串行的,一个接一个。但是:随机访问模式(移动磁头)的光盘变慢,SSD 将继续响应。有具有 39000 (!) IOPS 能力的 SSD。快速磁盘达到 450 IOPS 左右。
    猜你喜欢
    • 2023-03-10
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 2011-10-21
    相关资源
    最近更新 更多