The nuances of new age SSDs - Slow performance & Solution

Chetan KhuranaPD Director
CERTIFIED EXPERT
Versatile talent, doing things unknown, passionate about technology, OSS, photography, hobby electronics, and taking back control with DIY!
Published:
Edited by: David Draper
Post purchasing a portable SSD recently, I ran into several performance issues. Namely, the new SSD (SanDisk Xtreme Pro 1TB) having slow speeds on data copy and the files (on disk) taking a lot of disk space. These issues are now sorted but I want to share this for anyone in the same boat.
A bit of a background first. I am an enthusiast photographer who learnt the value of backups the hard way - you know what I am talking about, as we all have our versions and stories with that valuable lesson at the end. This article shares a challenge I ran into while pursing my quest for improving my back-up strategy.

Backup Strategy - My Setup

Since the day I realized the importance of the backup process, I have built towards a version of ABC (Archive, Backup and Cloning) while running on the 3-2-1 approach for creating backups (although only on physical disks).

To summarize my methodology, I use the excellent Samsung T7 Touch 1TB as my middle man and the last final backup resides on a physical 3TB WD HDD (which is as physically secured as possible).

For creating live back-ups, I also use a 512 GB SSD drive (hosted in a portable Sabrent SATA / NVMe casing) and this serves as my first level backup from my Nikon D500's SDMMC card.

Now I have been clicking-off for long - so naturally - I have built up a constant backlog of "photos to review" which are - no surprises here - never reviewed.

In order to bring in a bit of consistency and move forward from procrastination, I went ahead and decided to upgrade this 512 GB SSD to a still portable but a larger (1TB) SSD (hopefully a faster one too) to get cracking on my backlog.

Long story short - I went ahead and got a 1TB SanDisk Xtreme Pro SSD (which was on a local sale recently).

In order to do the 3-2-1, I make use of the excellent Syncoverysoftware for my backups and syncing of disks. This helps me maintain several profiles useful for automatic syncing and archival. Something which is crucial for keeping my other backups updated too.
Disclosure - my article is not a paid solicitation - I personally purchased this software tool to do backups. When I used their trial version, I became a big fan of the way this tool helped making it easy - hence it is my go-to now!
To start using the new SSD, I went ahead and created a new profile to base-sync this new SanDisk Pro with my existing Samsung T7 in Syncovery.

Discovering the Problem

From the moment I started the sync, I noticed that the transfer was pathetically slow. Before jumping to any wild conclusions, I thought of checking if this was an application glitch or otherwise.

To validate the speed outside of the sync app, I used both KillCopy (a multithreaded copy tool) and the standard Windows 10 (Explorer) copy mechanism.

Both validated the finding - the copy speeds were abysmally slow!

Now I use my (still able) machine with USB 3.0 ports, but I wasn't getting anywhere near the average USB 3.0 standard speeds - which were basically hovering on an average of 40 MB/s (the Samsung T7 gives my around 450MB/s).

The Solution#1

I tried to second-guess my way around this issue (with a bit of Googling) and found that some people had reported this on the SanDisk Forums. The finding they shared was that the SanDisk's USB C cable was particular about which side was "the right side up".

To try it, I rearranged the setup to have the Arrow indicators facing upwards on both sides.

Believe it or not, that actually helped me get to a relatively better speed (~150MB/s) -  although still no-where to the designated 450-500 MB/s mark.

I resumed the file-sync (thinking it was at least it was better than before) and waited for about 1.5 - 2 hours for the entire process to be completed. But I had one more surprise  left in store & waiting for me!

Discovering the 2nd problem

Post completing the sync and with both SSDs now being true copies / clones, I noticed that though both the disks were having identical files (100%) the 'size on disk' values for both were different.

Basically with exact same files on both - I was left with a significantly less space on the new SanDisk post the copy!

SSD Free Space Comparison

 

As obvious - for the entirety of the 780GB of the total data copied to the new SanDisk SSD, the "Size on Disk" (space taken by files) on SanDisk is 867 GB. The original, on the other hand - which was having the exact same files - it was taking only790 GB.

That is a lot of difference - the Xtreme SSD left with lesser than 77 GB in free space when comparing both!

I searched the causes for this online and after much trials found that the cluster size / allocation unit could be the thing causing this difference.

But first... a quick primer on Clusters

Why do clusters actually matter? For that, let us first see what a Cluster actually is and the role it plays during storage of data.

Simply defined, a "Cluster size represents the smallest amount of disk space that can be used to hold a file." So at any given time, any file stored on the disk will take up one or more clusters of storage

Side Note: A cluster can also be scattered among different locations on the hard disk - this is tracked in the disk's file allocation table (FAT). This enables easy access of files - so when you read any file, you see only one file - and the details of the clusters it is stored in is obfuscated from you.

Also, the cluster size can be set differently (can be chosen) - plus the defaults differ as well - depending on both the protocol and the OS being used - when a new drive is formatted. Refer this article for the "Default cluster size for NTFS, FAT, and exFAT".

Also, since it is the smallest logical amount of disk space that can be allocated to hold a file, the size of the cluster will regulate when we store any small or large file on the disk. For example, consider a scenario when we store several small files on a filesystem with large clusters - this will lead to a wastage of space (such wasted space is called slack space).

The solution#2

To check on the current cluster/allocation size of the drive I used the CMD (on Windows 10) to run the command -
C:\> wmic volume get driveletter,blocksize

This gave me the list of the drives along with the cluster size information for all the online disks. And it showed me what I was suspecting - the Samsung T7 had 131072 bytes (or 128 KB) cluster size whereas the SanDisk Xtreme Pro had 1048576 bytes (or 1 MB!) of a default cluster size.

Which effectively translates into this - for any file (even one with < 1 MB) copied over to the SanDisk SSD - it will end up taking up a minimum of 1 MB physical space on the disk to be stored (as that is the minimum block size).

The solution - yes you guessed it - is changing this cluster size, reducing it to a more efficient size.

Fun Serious Note: Changing a cluster size is only possible when needs a drive is being formatted - thus it is only possible to change it prior to you running a Format command. So if you want to correct an existing disk, you will need to format it (in order to reset the complete cluster information (and thus loosing all data).

This means you NEED TO BACKUP YOUR EXISTING DATA before you even think of changing the Cluster Size. To reiterate, please do a backup before you attempt this!

Also, you can choose the appropriate File System protocol (FAT, NTFS, exFAT etc.) to suit your purpose best (more on this here).

The final solution thus was to re-format the SanDisk SSD with the below parameters
File System - exFAT
Allocation unit size - 128 KB (the cluster for the SSD)

To check and ensure it worked, I re-ran the sync profile via Syncovery - and now it only took about 40 mins for the sync to complete - with an average speed upwards of 350 MB/s -  to sync the entire SSD disk plus it gave me back my exact free space I was expecting, yay!!

Buy why "do I need to mess with an off the shelf SSD?" 

Don't hate me but I want to answer that question with another question:
Why did SanDIsk choose to do this in the first place?
The way I see this is that the original (read large) cluster size would be beneficial is if you use the SSD for regularly transferring only large sized files, the bigger clusters would be beneficial as the transfer would be quite fast. This could be the case when you use this SSD for transferring media files back and forth from your swanky Smartphone and your laptop.

But the same "efficiency for large file transfer" logic back-fires for smaller files (and especially if there are too many of them!) as there were in my case.

Anyways, if you ask me, I would trade the additional disk space available for usage over and above the ease of dealing larger files, any given day. And like any other stuff you own, it is nice to exert your choices of how you want to use your SSD you just got for yourself!

I hope this answers any how's and why's around your SSD speeds - and helps someone out there!
1
360 Views
Chetan KhuranaPD Director
CERTIFIED EXPERT
Versatile talent, doing things unknown, passionate about technology, OSS, photography, hobby electronics, and taking back control with DIY!

Comments (1)

Chetan KhuranaPD Director
CERTIFIED EXPERT

Author

Commented:
Thank you David!

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.

Get access with a 7-day free trial.
You Belong in the World's Smartest IT Community