I checked this, and can confirm that it's trying to analyze multiple videos at once during auto-import now, which is likely to destroy performance on HDDs.
I have said this many times, but I would like the "automatic" setting for analysis to be more context-aware.
Standard audio tracks should analyze as many files as your CPU has threads available.
Audio files are typically small enough that even loading these from an HDD is not going to hurt performance.
This is currently limited to 8. My CPU has 16 threads, and I plan on upgrading to 32 threads once the new Ryzen CPUs are available later this year.
DSD/SACD audio should analyze 1/4 as many tracks as your CPU has threads available.
DSD decoding uses 4 threads per track in Media Center, so this maximizes CPU utilization while minimizing disk access.
DSD tracks tend to be quite a bit larger than standard audio tracks, so this can noticeably improve the performance of analysis if stored on an HDD.
Video is tricky, since the CPU utilization can vary a lot depending on the audio formats used.
Analyzing multiple videos at once can cause significant disk thrashing and performance degradation if stored on a hard drive, sometimes slowing down the process considerably.
Unless you are dealing with very small files, it is typically best to analyze videos one at a time if they are stored on an HDD.
But if the videos are on faster storage, or stored across multiple drives, analyzing multiple files at once can speed up the process.
I ran a short test on 8x10GB videos, and analyzing four files at once on an NVMe SSD seemed optimal.
One file at a time took ~4 minutes, two files halved that, and four files halved it again - bringing it down to only 1 minute.
Analyzing 8 files at once only improved speed by another 20% or so, because I was then limited by the CPU rather than the disk.
But analyzing that many files at once is not good when they're stored on HDDs rather than an NVMe SSD. SATA SSDs will bottleneck far sooner too, but that typically won't cause performance degradation, the analysis just won't get any faster as you add more files.
I don't know if Media Center is tracking any kind of performance metrics during analysis that might be able to solve this problem for videos.
I have a tiered storage setup where I have SSDs for fast writes, files are then moved to HDDs, and eventually to 'archive' HDDs (
SMR drives that I won't be buying more of).
- If I analyze a single UHD movie, I get ~150MB/s off one of the HDDs.
- If I analyze two UHD movies which are stored on separate drives in the pool, analysis proceeds at ~300MB/s.
- But if I selected two UHD movies which are stored in different locations on the same disk, total performance dropped to ~40MB/s due to thrashing (and that's with a drive supporting NCQ).
If MC was tracking these metrics it could start by analyzing one file, add more until total I/O performance starts to drop, and back off once it does.
Alternatively, a much simpler solution would be something like a "maximum videos to analyze simultaneously during auto-import" option, even if that may limit performance.
Fortunately, it does appear that Media Center still runs analysis as a very low priority when it's in the background, so this only seems to be an issue for manually initiated 'auto-import' commands.