Originally Posted By: Shonky
If mechanical disks, then reading vs writing is irrelevant.

Essentially this. If there's hard drives involved anywhere in the process, it's going to slow it down when any one of them is trying to do more then one operation. The one hard drive in the system is having to thrash a bit to keep sending data to the hard drive in the USB 3 enclosure while also sending it to the spinning hard drives in the unRAID system. At work recently I showed how one SAS SSD sitting in a server was as performant as a 24 drive RAID array of 10k spinning disks for the use case we had.

Every OS and filesystem and RAID controller and so on have various optimizations they try to apply to working with hard drives, and there can be some variances there in how well they do. Those optimizations helped hard drives achieve some form of multitasking. And they vary based on what level of the storage stack. Storage controllers added command queuing and reordering at various points to help minimize head movement. However this stack was rarely that deep, with SATA offering 32, and SAS offering 64 command depth. Most filesystems try to optimize metadata based on spinning disks and various different workloads.

Simply dismissing the issue as a "Microsoft thing" is just the same style of FUD and trolling that MS was engaged in decades ago. Things change. All the way to the point that Windows 10 is a desktop Linux environment these days.

Right now the major change going on in storage continues to be around SSDs. Seeing multiple tiers of SSD tech has been enlightening on where bottlenecks were in our systems due to designing them around spinning magnetic disks. Take for example the command queue depth mentioned earlier. That still applies to SSDs attached to SATA or SAS buses (or USB buses doing USB->SATA translation). There's a somewhat newer bus for SSDs called NVMe that started from scratch instead of basing some layers off prior hard drive tech. It offers 64k of command depth in it's queue, and has 64k queues instead of one. Playing with NVMe is when you stop measuring drive performance in MB/s and start measuring in GB/s. Latency stops being measured in ms, and instead in µs.

I've been testing NVMe vs SAS SSDs vs HDD RAIDs lately, and the order of magnitude in difference between them is amazing. Filesystems are also starting to come out designed purely around SSDs, such as APFS already running on millions of iOS devices. Storage is finally accelerating in speed as the same pace as other tech, and in time will eventually be cost competitive to replace almost all use of spinning hard drives. One interesting advance will be NVDIMM, it's already showing up in commodity x64 based servers as an option.


Edited by drakino (10/09/2017 01:06)
Edit Reason: fixed NVRAM typo, meant NVDIMM specificially