SSD performance in Linux


Dec 8, 2012
Noticed something weird speed-wise with my SSD. In Windows, with write back caching enabled in Device Manager, I typically get around 120MB/s when copying files from my server over the gigabit switch.

Turn off write back caching, and write performance drops to 60MB/s (give or take). I had a few friends test the same scenario on their systems and 2 of them saw no slow downs when copying large (8+ gig) files from their servers to their SSDs.

Another friend of mine, his performance tanked like mine.

Why is it that some times write performance isn't impacted with write caching off and other times it is. These drives were old Intel SSDs, Sandisk and Samsung.

Here are the specs for my drive: (Sandisk SDSSDHII480G)

Sequential Read (Q= 32,T= 1) : 544.667 MB/s
Sequential Write (Q= 32,T= 1) : 501.534 MB/s
Random Read 4KiB (Q= 32,T= 1) : 259.573 MB/s [ 63372.3 IOPS]
Random Write 4KiB (Q= 32,T= 1) : 264.433 MB/s [ 64558.8 IOPS]
Sequential Read (T= 1) : 513.209 MB/s
Sequential Write (T= 1) : 481.303 MB/s
Random Read 4KiB (Q= 1,T= 1) : 30.979 MB/s [ 7563.2 IOPS]
Random Write 4KiB (Q= 1,T= 1) : 67.735 MB/s [ 16536.9 IOPS]

Test : 1024 MiB [C: 60.8% (271.7/447.0 GiB)] (x5) [Interval=5 sec]
Date : 2016/07/27 23:39:11
OS : Windows 7 Ultimate SP1 [6.1 Build 7601] (x64)

I'm almost positive that like the 2 guys I asked, I too was able to max out my gigabit switch when copying from the server to my SSD without having write back caching enabled.

I noticed something was 'off' when I was in Linux with the 2nd SSD and was doing a file copy and speeds were in the 60MB/s range. I booted back into Windows and same deal. I turned on write caching and performance went back up but it feels like I put a band-aide on some underlying I/O problem.

I tried and tried to enable write back caching in Linux with hdparm and while the SSD says it's active, the best speed I can get when copying from the server to my Linux install is 60MB/s. If I remove the Linux SSD and boot into Windows (same hardware) WITH write caching enabled, I'm back to 120MB/s.

Any ideas on what's up or am I mis-remembering the file transfer speed when I was booted into Linux?
It's difficult to diagnose the problem based on the info given. I'll share some thoughts anyway.

Even the crappiest SSD should not be a bottleneck for a file transfer coming from gigabit Ethernet, cache enabled or not. If I were you, I would leave the write cache enabled and look for the problem elsewhere.

What do you use to feed the transfer on the other end? You mention server, but that is pretty vague. Are you sure there were no other transfers ongoing on the server at the time you copied?

How much RAM do your machines have? Does your server have SSD as source disk, or is it spinning rust?

My guess is this:
By server you mean an older machine with 4 gig RAM and some regular HDD's in them, or worse, one of those horrible home NAS appliances.
Files you have copied sequentially (like dvdrips) will max out the line because the server can feed them without disk seeks.
Files you downloaded via bittorrent, directly to the server (to not fill your SSD) that are fragmented do not hit line speed because your HDD in the server gets thrashed.

You could try to defrag your server and try again.