我有一个线程池将数据写入 SSD 磁盘。(windows XP, c#) 我想选择一个池大小来优化性能。从理论上讲,是否应该通过更多线程来提高性能?SSD 如何处理并发写入?还有并发读取,就此而言?
谢谢!
我有一个线程池将数据写入 SSD 磁盘。(windows XP, c#) 我想选择一个池大小来优化性能。从理论上讲,是否应该通过更多线程来提高性能?SSD 如何处理并发写入?还有并发读取,就此而言?
谢谢!
如果您需要执行随机 io 操作,您可能需要确保您的驱动器在 AHCI 中运行,因为 AHCI 的高并发随机性能通常比 IDE 更快(请参阅http://benchmarkreviews.com/index.php?选项=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 用于读/写。