【发布时间】:2011-03-31 00:01:03
【问题描述】:
我有一个线程池将数据写入 SSD 磁盘。 (Windows XP, c#) 我想选择一个池大小来优化性能。理论上, 更多线程应该提高性能吗? SSD 如何处理并发写入? 还有并发读取吗?
谢谢!
【问题讨论】:
-
我将投票支持超出下面已经发布的测试结果的答案。
标签: c# windows-xp threadpool solid-state-drive
我有一个线程池将数据写入 SSD 磁盘。 (Windows XP, c#) 我想选择一个池大小来优化性能。理论上, 更多线程应该提高性能吗? SSD 如何处理并发写入? 还有并发读取吗?
谢谢!
【问题讨论】:
标签: c# windows-xp threadpool solid-state-drive
如果您需要执行随机 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 结果)更快。
【讨论】:
解决此问题的最佳方法是实际分析不同的池大小。您选择的实际设置将取决于您正在执行的 I/O 的性质,当然还有所述 I/O 的并发性。
理论上,应该表现 通过更多线程来改进?
与传统的基于主轴的驱动器不同,SSD 具有出色的随机读/写性能,因此(极大地)受益于多个并发线程对其执行 I/O。
SSD 如何处理并发写入? 还有并发读取吗?
由于没有移动部件,只是对各种(内存)位置的数据访问,因此需要的随机读取/写入队列非常少,除非超过驱动器的 IOs/s 用于读取/写入。
【讨论】: