|
|
|
Back to newsletter 283 contents
In January's tips we had this tip: "Multiple threads contending the same hard disk will ruin performance, because the hard disk has to seek back and forth between two areas on the disk. That's terrible for throughput. Modern SSD or NVMe drives have 1000 times more peak throughput than hard disks. They have almost free seeks, near instant (buffered) writes, and actually require parallelism to get peak performance! The optimal programming models for using these different types of storage is very different. If you do blocking I/O on NVMe drives, your thread pools are almost certainly sized too small."
I assume that the various data storage projects have taken this need into account, but I doubt that most applications have. This is a very important performance difference to be aware of. Not just in terms of optimizing drive IO performance, but also to note that there may be a significant difference between development, test, and production systems for the type of drive. Optimizing in one environment has always been fraught with concern that the optimizations may not transfer to other environments, and in this case you may need entirely different styles of design and architecture for optimal performance on different systems, in a subsystem that you probably haven't considered needed that!
Now on to all the usual newsletter list of links, tips, tools, news and articles, and as usual I've extracted all the tips into this month's tips page
Java performance tuning related news
Java performance tuning related tools
Back to newsletter 283 contents