开发者

C# ThreadPool for writing to SSD disk

开发者 https://www.devze.com 2023-02-17 19:00 出处:网络
I have a thread pool writing data to an SSD disk. (windows XP, c#) I would like to choose a 开发者_StackOverflow社区pool size to optimize performance. Theoretically,

I have a thread pool writing data to an SSD disk. (windows XP, c#) I would like to choose a 开发者_StackOverflow社区pool size to optimize performance. Theoretically, should performance improve with more threads? How do SSDs handle concurrent writes? And also concurrent reads, for that matter?

Thanks!


If you need to perform random io operations, you might want to ensure you're drive is running in AHCI, as random performance with high concurrency is usually faster with AHCI than IDE (see http://benchmarkreviews.com/index.php?option=com_content&task=view&id=505&Itemid=38&limit=1&limitstart=3).

This review also shows that concurrent random reads and writes (4K-64Trd Results) are faster than when using only a single thread (4K results).


The best way to go about solving this problem is by actually profiling different pool sizes. The actualy settings you choose will depend on the nature of I/Os you are performing and of course the concurrency of said I/Os.

Theoretically, should performance improve with more threads?

SSDs unlike conventional spindle based drives have great random read/write performance and therefore will benefit (greatly) from having multiple concurrent threads perform I/O on them.

How do SSDs handle concurrent writes? And also concurrent reads, for that matter?

Since there are no moving parts, just data access to various (memory) locations, there is very little queing of random reads/writes that is needed, unless the drive's IOs/s for reads/writes is exceeded.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号