NVMe cache drive - slow write of plex metadata library


Recommended Posts

I have a pretty large plex metadata folder (250GB / 1.5M files), which is currently sitting on a SSD drive using Unassigned Devices.

 

I recently built a new system and installed a Corsair MP600 1TB to act as a cache drive and have been moving the appdata over to it, but the issue is when copying the plex metadata folder. Before the NMVe drive I was using a 1TB WD Black HDD and copied the plex directory from it to the SSD in 7-8 hours (I think... it finished while I was asleep). 

 

Now I am coping the folder from the SSD to the new NVMe Cache drive, and it's taking FOREVER. I gave up after 24 hours as it still seemed to have 3-5GB left, which would have been a few hours more at least. Thankfully even though I was moving files, it's actually seems to be a copy/delete process so I was able to remount Plex using the existing SSD.

 

At first I thought I screwed up and the MP600 was a QLC drive and I was blowing through the cache and dealing with slow writes because of it, but it turns out it a TLC drive, which while not ideal should be more than sufficient (I thought).

 

Does anyone else have any experience with anything similar? Is there a reason I'm not aware of that this long write time would make sense? I am guessing that once I have the plex folder on the MP600 I should have really good performance, but the horrible write time has me concerned, and I am wondering if this is a good NVMe drive to be using for this, or if I should be looking for a MLC or SLC drive. The MP600 seems to have great reviews, and really good performance, so I am confused if it's just not an ideal scenario to be moving so many small files to the drive.

 

This is the first NVMe drive I've owned and was really excited by the performance potential, but feel seriously underwhelmed at the moment.

Link to comment

I've never used an NVMe and don't honestly know much about their details but after doing some quick, preliminary searching about NVMe's in general and your MP600 it would seem that the most likely case is that you are filling up your cache and causing the slow down.  It's kind of funny (and depressing) because you'd think that with the advertised speeds involved that it should be able to keep up with writing small Plex metadata files.

 

Here's a rough break down of the information I read.. the first bits are not specific to the MP600 but to NVMe's in general and seems to apply here (it will correlate later to the MP600).

 

Quote

Based on the model number it is a QLC Flash-based Intel 660p 1TB drive. The behaviour you are seeing is normal and expected - there is a limited amount of fast(er) cache and after that is exhausted it will fall back to rather slow native QLC Flash write speeds. With 200GB free the fast SLC cache is quite small.

Quote

it's probably the

dynamic caching on 660p that doesn't have enough spce.

(bold emphasis is mine)

Quote

It has a tiny SLC write cache, and once that's full, the write speeds are going to be terrible because it has to write to the QLC directly.

A couple of these quotes are from this thread, which also has some nice graphics about the dynamic cache. https://www.techpowerup.com/forums/threads/super-slow-copy-from-ssd-to-other-ssd.255061/

 

So now turning to the MP600 specifically, I saw two semi-conflicting comments about the available cache.  The Corsair product website doesn't specifically mention the cache in the specs.

 

A thread on Reddit, with supposedly real quotes from Corsair, says the cache is 1/3 of the available drive space.  So an empty 1TB drive should have roughly 333GB of cache.  This would go back to those dynamic cache comments above.

 

But then this article says that the MP600's controller has "A DRAM cache has a capacity of 1/1,000 of the total NAND capacity".  So then, an empty 1TB drive would have only 1GB of cache.  That can't be right, can it?

 

A general complaint on Reddit about the speed of the MP600 and slowing down as capacity fills.

 

And here's a 15 page thread on the Corsair forum about people complaining about the speed of the MP600.

 

So ultimately, I think you're just filling the cache and the speed is to be expected especially while transferring over a ton of data at once.

 

Good luck!   This is good to know too since I was planning on using NVMe's in my new PC.

Edited by Energen
Link to comment
12 hours ago, bkastner said:

I have a pretty large plex metadata folder (250GB / 1.5M files), which is currently sitting on a SSD drive using Unassigned Devices.

 

I recently built a new system and installed a Corsair MP600 1TB to act as a cache drive and have been moving the appdata over to it, but the issue is when copying the plex metadata folder. Before the NMVe drive I was using a 1TB WD Black HDD and copied the plex directory from it to the SSD in 7-8 hours (I think... it finished while I was asleep). 

 

Now I am coping the folder from the SSD to the new NVMe Cache drive, and it's taking FOREVER. I gave up after 24 hours as it still seemed to have 3-5GB left, which would have been a few hours more at least. Thankfully even though I was moving files, it's actually seems to be a copy/delete process so I was able to remount Plex using the existing SSD.

 

At first I thought I screwed up and the MP600 was a QLC drive and I was blowing through the cache and dealing with slow writes because of it, but it turns out it a TLC drive, which while not ideal should be more than sufficient (I thought).

 

Does anyone else have any experience with anything similar? Is there a reason I'm not aware of that this long write time would make sense? I am guessing that once I have the plex folder on the MP600 I should have really good performance, but the horrible write time has me concerned, and I am wondering if this is a good NVMe drive to be using for this, or if I should be looking for a MLC or SLC drive. The MP600 seems to have great reviews, and really good performance, so I am confused if it's just not an ideal scenario to be moving so many small files to the drive.

 

This is the first NVMe drive I've owned and was really excited by the performance potential, but feel seriously underwhelmed at the moment.

How are you doing the copying? Use /mnt/user or /mnt/cache? Use command line or script or krusader etc?

It's very hard to judge if it's slow or fast due to the number of variables involved.

 

Link to comment

That's some interesting information... I knew QLC is slow but has the SLC cache to help, but didn't think that applied to MLC or TLC NVMe drives as well, which is why I was surprised at the performance.

 

I am thinking I will do a copy of the plex folder so I don't have to take it down, and will hopefully have 99% of the overall data on the NVMe and then when I take plex offline and redo the move, skipping files that exist it should be a minimal copy that won't overwhelm the NVMe... definitely more complicated than I was expecting.

 

I also realize that I now need to figure out how to flash the firmware on the NVMe drive while on Linux as that is something I apparently need to do as well.

Link to comment
1 minute ago, testdasi said:

How are you doing the copying? Use /mnt/user or /mnt/cache? Use command line or script or krusader etc?

It's very hard to judge if it's slow or fast due to the number of variables involved.

 

I was using MC to do the copy from /mnt/disks/CachePool to /mnt/cache

Link to comment
37 minutes ago, testdasi said:

mc isn't quite the best tool for 1.5m files. Something as simple as cp -ar (either through CLI or as a script) would work much better.

Thanks, that's good to know. I like MC as it's easy, but will try the command line approach. I know the 'r' is for recursive, but what does the 'a' do? I see it's for archive, but I am not sure I understand what that does in this context

Link to comment
31 minutes ago, testdasi said:

-a would create basically an as-identical-as-possible copy of the original. I can't remember if a includes r or not but I have been using -ar for decades so just keep on using it by habit.

Thanks.

 

One additional question... if I am looking at doing this in 2 passes as mentioned where I pre-stage as much data as possible prior to turning Plex off for the final pass... will this command skip files that are already copied and haven't been updated? Or will I need additional switches on the second pass to skip identical files? 

 

I sort of remember something like this in Windows with archive bits being set / unset, but not sure how this works in the Linux world.

Link to comment

Another solution would be to just keep your existing SSD drive and use it only for Plex's stuff ... much easier that way!

 

Also I was thinking that you could archive the metadata folder and make it easier to copy a few large files vs a lot of small files...  but your metadata is huge.  Mine comes in at 8GB...... yours... wow.

 

But moving some large zip files vs a million small files would be easier also.  Just takes the time to zip and then unzip them.

Link to comment

I had been thinking about that, but the NMVe drive *should* be much faster when people are browsing libraries, and ideally I'd rather have it stored on the cache drive vs unassigned devices. A few weeks ago I was doing something with the array - I think it was a drive replacement - and it looked like unassigned devices didn't come up until the array was back to normal.. not sure if that was normal but plex was down until the unassigned device was visible... I figured that having it all on the cache drive should eliminate this risk/issue - though again, not sure how normal behavior that was.

 

I had moved plex to my SSD from the WD Black cache drive as it was much faster, but I figured one of the benefits of the NVMe is it should be so much faster than both...and it reduces the complexity of the environment to keep it all "in house".

 

I tried the cp -ar command and it took 25 mins... so I am wondering if it skips existing files automatically (since 95-98% would have been on the NMVe already), which would be a very reasonable timeframe for plex to be down during the switch.

 

And yes.. my plex metadata folder is huge... it's over 4700 movies and 750 tv shows with over 30,000 episodes total. So... it's a ton of metadata. :)

 

Link to comment
8 hours ago, bkastner said:

And yes.. my plex metadata folder is huge... it's over 4700 movies and 750 tv shows with over 30,000 episodes total. So... it's a ton of metadata. :)

I've barely kept up with my "movies to watch from years ago" list... there's no way you'll ever watch those movies.... just no way..... not possible..........................  please don't tell me you've seen them all......... :D

Edited by Energen
Link to comment
Just now, Energen said:

I've barely kept up with my "movies to watch from years ago" list... there's no way you'll ever watch those movies.... just no way..... not possible..........................  please don't tell me you've seen them all......... :D

Lol... no chance... I probably haven't seen more than 20-25%.. though my father-in-law lives with us and is retired and has likely watched a pretty good chunk. But I do provide media for a number of friends and family and Plex is awesome for that.. so much better than filling external HDDs which I used to do for everyone... that got really annoying quickly.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.