Linux Mint 18, Ubuntu 16.04, Xubuntu 16.04, and the Samsung 950 Pro 256G M.2

📅 April 21, 2016
xub1604gUbuntu 16.04 was released earlier today (April 21, 2016), and it feels like Christmas!

This also means that the Ubuntu derivatives, such as Xubuntu 16.04, will also be available. In fact, Xubuntu 16.04 is also available for download today. Plus, 16.04 is the Long Term Support version (LTS), making it a replacement for the venerable and reliable 14.04.

With two new operating systems available, how will they handle the Samsung 950 Pro M.2 NVMe 256G SSD? Will Ubuntu/Xubuntu 16.04 install? What will boot times be like?

Update: This article has been updated to include results for Linux Mint 18 Cinnamon.

I previously installed Linux Mint 17.3 on a brand new Samsung 950 Pro M.2 256G SSD, and it performed marvelously. If you like, you can read the details in this article. Linux Mint 18 is also 100% compatible with the Samsung 950 Pro.

Update December 29, 2016: Linux Mint 18.1 is also compatible with the 950 Pro out of the box. Like the previous distributions, the Mint installer recognizes the NVMe SSD and allows installation on it without prompting for drivers.

a

The Samsung 950 256G M.2 offers ~2.2GB/s sequential reads and ~950 MB/s sequential writes. This little wonder takes secondary storage to a new level for desktop computers.

Let’s see how the new Linux Mint 18, Xubuntu 16.04, and the new Ubuntu 16.04 both perform on this SSD.

The Test Setup

Just like the Linux Mint 17.3 test, I installed Ubuntu/Xubuntu 16.04/Linux Mint 18 on the same Z87 system. This has a BIOS dated 2013, and it is set to Legacy Mode to ease installation. (UEFI is problematic.) PCI Express 3.0 is supported, which is good because there are no M.2 slots on this board, and the 950 Pro must be installed in an adapter card plugged into a PCIe 3.0 x4/x8/x16 slot in order to work.

The latest, stable 64-bit versions of Ubuntu 16.04 and Xubuntu 16.04 were installed and tested from a USB 3.0 device.

For Linux Mint 18, I had to set the SATA mode in BIOS to Legacy IDE so the Linux Mint 18 installer would see the M.2 NVMe device and the other SSDs. A later reinstallation of Xubuntu 16.04 also required this change (Xubuntu 16.04 installation refused to detect any SSD) even though it was unnecessary before testing Linux Mint 18. I suspect a BIOS issue somewhere.

Installation: Do They Install to the 950 Pro?

Yes.

Linux Mint 18, Ubuntu 16.04, and Xubuntu 16.04 install to the Samsung 950 Pro. The installer sees the NVMe SSD and treats it like a regular drive. I installed from a LiveCD boot by clicking the “Install it” icon on the desktop for each.

No driver downloads are required.

Installation is fast for all distributions, but Ubuntu 16.04 is slower than the Xubuntu 16.04 installation. Networking was disabled for all installations in order to prevent Internet access that might lengthen the installation times.

Times were measured using a stopwatch from the point of clicking the Continue button following partitioning to the Reboot dialog.

                Install Time
-----------------------------------------
Xubuntu 16.04   1m28s
 Ubuntu 16.04   2m23s
Linux Mint 18   ~1m15s (Finished before realizing it)

Ubuntu 16.04 definitely took longer to install. 2 minutes 23 seconds is still fast, but I am used to the speedy 1 minute 26-28 second install times for Linux Mint 17.3 and Xubuntu 16.04. Linux Mint 18 easily beat them all.

I had no trouble installing any distribution to the 950 Pro M.2 SSD. It was just like any other drive. Assign the partitions, set the boot loader, and click continue.

Upon Reboot (and unplugging the bootable USB), Ubuntu/Xubuntu booted just fine to a login screen and desktop. (Be sure to specify the 950 Pro as a boot device in the BIOS.)

a

Xubuntu 16.04 desktop running from the Samsung 950 Pro 256G M.2 SSD.

a

Ubuntu 16.04 desktop. This and Xubuntu 16.04 were installed separately as the sole OS on the 950 Pro. No dual-booting.

lm18a

Linux Mint 18 Cinnamon. Fast with snappy response.

Visible M.2 in Disks

Running Disks (gnome-disk-utility), both Xubuntu and Ubuntu recognized the 950 Pro.

a

Xubuntu 16.04 running gnome-disk-utility (Disks). The 950 Pro appears as the system drive on which Xubuntu is installed.

a

Ubuntu 16.04 running gnome-disk-utility (Disks) from LiveCD. The 950 Pro was formatted as ext4 using all space available.

Device Naming

Notice that Linux labels the Samsung 950 Pro as /dev/nvme0n1, not /dev/sda or /dev/sdb like we might be used to. Any partitions are appended: /dev/nvme0n1p1, /dev/nvme0n1p2, and so on.

Since this was the only drive installed in the test system, both Xubuntu and Ubuntu used the same device naming for the same 950 Pro: /dev/nvme0n1.

Installation Notes

a

I chose “Something else” in order to manually partition the 950 Pro and ensure that the boot loader gets installed to the correct device.

a

For both Xubuntu and Ubuntu, the installer would automatically pick /dev/nvme for the boot loader installation. Manually set the boot loader to the M.2 device itself, which is called /dev/nvme0n1 as shown in the list of available devices. Do not pick a partition (/dev/nvme0n1p1 or /dev/nvme0n1p5, for example) or else Linux will not boot.

a

The Ubuntu 16.04 installation begins. Only 2 mintes, 23 seconds to go…

The Linux Mint 18 installation was curious. On three different test systems, the Linux Mint 18 installer refused to recognize the 950 Pro. This also happened during the Xubuntu 16.04 installation. Older versions would work fine with ACHI, but not the 16.04-based distributions.

I had to change the SATA mode to Legacy IDE in BIOS, and then the installer saw the 950 Pro.

a

With Linux Mint 18, the SATA interface had to be set to Legacy IDE in the BIOS. AHCI would not detect the Samsung 950 Pro. Once the BIOS setting was changed, the Linux Mint 18 installer detected the Samsung 950 Pro. Installation to the M.2 SSD was the same as any other SSD.

Be sure to install the boot loader to the 950 Pro device, which is /dev/nvme0n1 in this example.

Benchmarks

So, both distributions installed fine. What about performance? Xubuntu and Ubuntu were tested separately from a LiveCD (bootable USB) since Disks will not benchmark the system drive, which is the 950 Pro.

Disks is installed and built into Ubuntu 16.04, but Xubuntu 16.04 must have it installed. To install it, ensure an active Internet connection is available, and enter,

sudo apt-get install gnome-disk-utility

Xubuntu 16.04

Performance was equivalent to that measured with Linux Mint 17.3.

Disks, 3x1000M

Samsung 950 Pro 256G M.2 formatted to ext4. 2.3GB/s reads, 942 MB/s writes.

Samsung 950 Pro 256G M.2 formatted to ext4. 2.3 GB/s reads, 942 MB/s writes.

Disks, 10x1000M

a

ext4. 2.5 GB/s reads, 931 MB/s writes.

Disks, 100x100M

a

ext4. 2.1 GB/s reads, 873 MB.s writes. Performance is lower for small sample sizes, such as 100M shown here.

Disks, 1000x100M

a

ext4. We see the lower numbers persist during longer tests of smaller files sizes (100M here). 2 GB/s reads, 866 MB/s writes. This is lower than the 950 Pro’s full capabilities as demonstrated by Linux Mint 17.3.

Disks, 20x1000M

a

ext4. Even with an extended test of 20 1G samples, reads average to 2.2 GB/s and writes average to 920 MB/s.

 

Xubuntu 16.04 Benchmark Thoughts

Overall, Xubuntu 16.04’s performance with the Sansmung 950 Pro 256G was good, but the numbers were consistently lower with smaller sample sizes. Reads were usually around 2.0-2.2 GB/s and writes were often 860-920 MB/s. By comparison, Linux Mint 17.3 could reach 2.5 GB/s reads for all sample sizes. A 300 MB/s read difference is significant.

By comparison, here is what Linux Mint 17.3 is capable of using the same hardware:

a

Linux Mint 17.3 benchmarking the Samsung 950 Pro 256G M.2. Perhaps 16.04 uses different a version of Disks?

Ubuntu 16.04

Ubuntu was a different story. Despite utilizing the same hardware and the same PCIe 3.0 slot, Ubuntu 16.04 consistently returned low numbers equivalent to PCI Express 2.0 results during low sample sizes.

Disks, 3x1000M

Samsung 950 Pro formatted to ext4 on Ubuntu 16.04.

Samsung 950 Pro formatted to ext4 on Ubuntu 16.04. 2.4 GB/s reads, 936 MB/s writes. High sample sizes were within range of the 950 Pro’s capabilities.

Disks, 20x1000M

a

ext4. 2.3 GB/s reads, 926 MB/s writes. Again, the larger sample size yields better performance. However, performance drops during smaller sample sizes.

Disks, 100x100M

a

Samsung 950 Pro formatted to ext4 on Ubuntu 16.04. The 1.8 GB/s sequential reads and 867 MB/s sequential writes are far short of what the Samsung 950 Pro is capable of. This is not an aberration. Performing the same 100x100M test repeatedly resulted in similar numbers.

Disks, 100x10M

a

ext4. 1.8 GB/s reads, 747 MB/s writes. Working with smaller 10MB sample sizes resulted in even lower numbers. The 1.8 GB/s read is about the maximum real-world read speed using PCI Express 2.0, but this is PCI Express 3.0 slot with four lanes in use. Maybe the test was not long enough? Let’s try a longer test.

Disks, 1000x100M

a

ext4. An extended test of 1000 100M samples shows strange behavior in Ubuntu 16.04. The numbers are low with 1.7 GB/s reads and 775 MB/s writes. This is expected with PCIe 2.0 but not with PCIe 3.0. The test had long enough to run in order to balance out.

Ubuntu 16.04 Benchmark Thoughts

Ubuntu’s performance with the Samsung 950 Pro 256G M.2 felt quirky and inconsistent. Despite using the same hardware (nothing else changed except for the installed distribution) and ensuring that no extra programs were running, Ubuntu’s benchmark performance was worse than Xubuntu’s.

Not certain why at this point. To be fair, this is the release day. I tried updating Ubuntu and Xubuntu, but there was nothing to update. Large gigabyte files seemed to take full advantage of the 950 Pro’s high throughput, but smaller files yielded PCIe 2.0 results.

Linux Mint 18 Cinnamon

Since Linux Mint 18 was installed to the NVMe SSD at the time of testing, I was limited to read-only tests since Disks must first unmount a drive before performing writes.

With Linux Mint 18, I used the btrfs file system, not ext4.

Disks, 3x1000M

a

btrfs. 2.3 GB/s reads. Write could not be measured since this was mounted as the system drive.

Disks, 10x1000M

a

btrfs. 2.2 GB/s reads.

Disks, 100x100M

a

btrfs. 2.3 GB/s reads.

Disks, 1000x100M

a

btrfs. 2.3 GB/s reads.

Linux Mint 18 Cinnamon Thoughts

The Samsung 950 Pro maintains its high speeds with Linux Mint 18 formatted as btrfs. I encountered one, strange issue happened during this benchmark, and only once. I run the same test multiple times to get and average result instead of relying upon a single benchmark.

When running the  1000x100M benchmark, reads were in the 2.3 GB/s range as expected, but the read performance suddenly dropped to ~1.8 GB/s and remained there for the remainder of the benchmark. A screenshot is shown below.

a

Reads suddenly droped to ~1.8 GB/s around the 80% mark and stayed there. Average access time rose to a consistent 1.04ms from the faster 0.02ms.

Successive benchmarks were throttled to 1.8 GB/s reads and 1.04ms access times. It did not matter what kind of benchmark I performed: 100x100M, 100x10M, 10x1000M, 10x1000M. All were limited to 1.8 GB/s reads and 1.04ms access times.

I finally restarted the Linux Mint 18 test system and tried again, and the benchmarks were back to the faster 2.3 GB/s reads an 0.02ms access times. Running multiple benchmarks again all showed the faster 2.3 GB/s read speeds. This happened only once, and I cannot reproduce the result. No idea what happened. The most significant changes made were the Legacy BIOS setting and the use of btrfs instead of ext4, but this is not a certain cause.

For Linux Mint 18, I did switch the BIOS to Legacy IDE instead of AHCI (used in the Xubuntu 16.04 and Ubuntu 16.04 tests), and it remained in Legacy IDE mode for the benchmarks, so maybe that had an effect. Anyway, the M.2 950 Pro is working perfectly with Linux Mint 18.

I doubt that this is anything to be concerned about. On the Linux Mint 18 system, I was also running flashcache with a different SSD and other behind-the-scenes software, so there might have been a conflict somewhere that triggered during optimal conditions. It works great now, and it has never happened again.

What About Boot Times?

Ubuntu 16.04 and Xubuntu 16.04 were installed on the 950 Pro (separately), and their boot times were measured with a stopwatch. How long must a user wait from pressing the power button to a usable desktop? The measurement does not include login entry time. For that, the stopwatch was paused. BIOS time is included in the results.

                Total  PwrToLogin  LoginToDesktop
--------------------------------------------------
Xubuntu 16.04     29s    26s         3s
 Ubuntu 16.04     31s    26s         5s
Linux Mint 17.3   23s    20s         3s

Total Xubuntu time is faster at 29 seconds. Ubuntu 16.04 takes 31s. Ubuntu’s Unity seems to take longer to initialize its desktop, while the speedy XFCE of Xubuntu is ready a full 2 seconds faster. Yes, it’s a close call, but neither competes with Linux Mint 17.3’s total boot time of 23 seconds.

To be fair, the BIOS consumes 12-13 seconds, and there is little to speed this up. Those with faster BIOS POST times should see numbers lower than these.

Conclusion

Is the Samsung 950 Pro 256G M.2 a worthy SSD on which to install Linux?

Absolutely!

All of the results shown here are faster than the fastest 6Gb/s SATA SSD available today. Considering that the maximum speed of the 950 Pro 256G version is about 2.2 GB/s (reads) and 950 MB/s (writes), I would say that it performs well with Xubuntu 16.04 but only so-so with Ubuntu 16.04.

It is still early for these distributions, but I expected better. Large file transfers max out the 950 Pro’s abilities, but small samples seem to slow it down…unlike Linux Mint 17.3, which remained fairly consistent no matter the sample size. Ubuntu 16.04 was somewhat of a disappointment in this area.

Is this truly Ubuntu’s fault? Not sure, but it seems as if something is happening under Ubuntu’s hood that prevents it from breaking free. But if this is true, why not see the same result for Xubuntu — an Ubuntu derivative?

Will the lower numbers during small sample sizes matter during everyday usage? Probably not. Both Xubuntu and Ubuntu responded well. Most programs opened near-instantly, and I could not tell a difference between 2.2 GB/s and 1.8 GB/s during regular usage.

Linux Mint 18, Xubuntu 16.04, and Ubuntu 16.04 automatically detect and utilize the 950 Pro. Compatibility is already there. No driver download hassles to deal with. No required BIOS updates. No UEFI. For new technology, such as M.2, this is great!

The Samsung 950 Pro is certainly a fast SSD that will make Xubuntu 16.04 and Ubuntu 16.04 run faster and snappier than you probably expect.

Related: 

 

, ,

  1. Leave a comment

Leave a comment