Question USB transfer-why the oscillation??

amips

Distinguished
Oct 12, 2010
10
1
18,515
View: https://imgur.com/a/qk1hFie

This happens on different mobos, different brands and with different size/type/brand/formats of drives.
When transferring larger chunks of data (e.g. a movie) from my PC's M.2 storage to a USB3 flashdrive, these peaks and troughs always occur. Can anyone explain to me WHY this occurs? In this example it ranges from 10 to 80. I have tried it with small cheap drives up to large Samsung Fit 256gb and all result in same "hilly vista"! Yes, I understand that my 32GB of RAM will help initially then the rate will drop when it RAMs out, but that is not the culprit in this case!
 

USAFRet

Titan
Moderator
View: https://imgur.com/a/qk1hFie

This happens on different mobos, different brands and with different size/type/brand/formats of drives.
When transferring larger chunks of data (e.g. a movie) from my PC's M.2 storage to a USB3 flashdrive, these peaks and troughs always occur. Can anyone explain to me WHY this occurs? In this example it ranges from 10 to 80. I have tried it with small cheap drives up to large Samsung Fit 256gb and all result in same "hilly vista"! Yes, I understand that my 32GB of RAM will help initially then the rate will drop when it RAMs out, but that is not the culprit in this case!
Cache fills up, then empties.
Wash, rinse, repeat.

This is quite normal.
 
So i WAS wrong! NAND/cache on the receiving drive is the limiter! Thanks for explaining that for me.

While cache is responsible for a decrease in performance for a sustained write, it doesn't explain the hills and valleys behavior if you think about it:
  • Let's say I'm feeding an SSD that can handle say 1GB/sec, the actual write speed after cache is filled up is 200 MB/sec, and it has say 8GB of cache.
  • The cache can fill up at the 1GB/sec rate, until all 8GB get filled up
  • The SSD can only empty the cache at a rate of 200 MB/sec, which means the channel is now limited to 200MB/sec over time (because it'll just spend 0.2 seconds filling up the cache again, then idle)
And while this example didn't complete its operation, I don't think I need to complete it to provide evidence that the transfer rate should eventually flatten for a large continuous write:
image.png


If anything, any dips with a large continuous write is more likely housekeeping of some sort.