我有一个线程池将数据写入SSD磁盘。(windows XP、c#)我想选择一个池大小来优化性能。从理论上讲,性能应该随着线程的增加而提高吗?SSD如何处理并发写入?还有并发读取,就这点而言?
谢谢!
发布于 2011-03-18 10:54:12
解决这个问题的最好方法是实际分析不同的池大小。您选择的实际设置将取决于您正在执行的I/O的性质,当然还有所述I/O的并发性。
从理论上讲,性能应该随着线程的增加而提高吗?
与传统的基于磁盘轴的驱动器不同,SSD具有出色的随机读/写性能,因此让多个并发线程在SSD上执行I/O将(极大地)受益。
SSD如何处理并发写入?还有并发读取,就这点而言?
由于没有移动部件,只有对不同(内存)位置的数据访问,所以需要的随机读/写队列很少,除非超出了驱动器的读/写IO/s。
发布于 2011-03-31 00:01:04
如果你需要执行随机io操作,你可能需要确保你的驱动器是在AHCI中运行的,因为高并发的随机性能在AHCI中通常比集成开发环境更快(参见http://benchmarkreviews.com/index.php?option=com_content&task=view&id=505&Itemid=38&limit=1&limitstart=3)。
这篇评论还表明,并发随机读取和写入(4K-64Trd结果)比仅使用单个线程(4K结果)更快。
https://stackoverflow.com/questions/5347539
复制相似问题