I recently got a NUC5PGYH and am setting it up as a NAS for myself. The first thing I did was update the BIOS to the newest version, just to get that out of the way. I then proceeded to install Arch Linux in BIOS mode and haven't had any significant problems since then. Overall, the system runs very well.
The trouble began when I attached two external USB 3.0 hard drives and started copying some large files. I only got a write speed of about 32 MB/s. Naturally I proceeded to doing some benchmarks and indeed the write speeds for both drives were between 48 and 50 MB/s only, which smells like USB 2.0. To rule out any problems with the drives themselves or USB 3.0 support in the newest Linux kernel, I attached them to my desktop computer, where I also have Arch Linux installed with the same kernel and ran some more tests. I got a sustained write speed of 100 to 120 MB/s, which is what I would have expected in the first place, because that's what I usually get with them in Windows. So neither the drives, nor USB 3.0 support in Linux should be at fault. Back at the NUC, I made sure that the drives were really recognized as USB 3.0 using lsusb.
Bus 002 Device 003: ID 0bc2:3321 Seagate RSS LLC Bus 002 Device 002: ID 1058:25ee Western Digital Technologies, Inc. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 8087:0a2a Intel Corp. Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
As you can probably see more clearly in the tree view, both hard drives are on the USB 3.0 bus using the correct xhci driver for USB 3.0.
/: Bus 02.Port 1: Dev 1, class="root_hub", Driver=xhci_hcd/6p, 5000M |__ Port 1: Dev 2, If 0, class="Mass" Storage, Driver=usb-storage, 5000M |__ Port 4: Dev 3, If 0, class="Mass" Storage, Driver=uas, 5000M /: Bus 01.Port 1: Dev 1, class="root_hub", Driver=xhci_hcd/7p, 480M |__ Port 5: Dev 2, If 0, class="Hub", Driver=hub/4p, 480M |__ Port 1: Dev 3, If 0, class="Wireless", Driver=btusb, 12M |__ Port 1: Dev 3, If 1, class="Wireless", Driver=btusb, 12M
A lot of searching on the forums turned up exactly nothing. Apparently it's possible in the BIOS of some NUCs to select the xHCI mode, but in my settings there is no such thing, only a USB legacy option. It doesn't do anything to my write speed. I also tried most of the probably unrelated settings concerning the power states and such. Of course I also thought of loading the defaults again and testing that, the result is always the same.
Considering that everything looks well from the operating system side and a very similar Linux installation got great write speeds on the same drives, I can't shake the feeling that maybe the BIOS on the NUC is responsible. I did install Arch Linux in BIOS (legacy) mode instead of UEFI, do you think that could have any effect at all?