Poor performance of ExtremePro 240GB

Hi there,

  I recently purchased an ExtremePro 240Gb. The computer it’s going in is an ASUS P5B deluxe. The drive is plugged into a 6Gb/s SATA card (a Rocket 620A Dual Port PCI-Express adapter). This adapter is plugged into a PCI-ex4 slot. The BIOS is using AHCI mode for SATA disks. I run Gentoo linux.

I have formatted the SSD into two Ext4 partitions (one 64Mb and the other is the remaining). Hdparm reveals this:

hdparm -tT /dev/sde /dev/sde: Timing cached reads: 7312 MB in 2.00 seconds = 3659.09 MB/sec Timing buffered disk reads: 576 MB in 3.00 seconds = 191.84 MB/sec

Smartctl reveals this:

smartctl -a /dev/sde smartctl 6.4 2015-06-04 r4109 [x86\_64-linux-4.4.6-gentoo] (local build) Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Marvell based SanDisk SSDs Device Model: SanDisk SDSSDXPS240G Serial Number: 154242402021 LU WWN Device Id: 5 001b44 ef52542e5 Firmware Version: X21200RL User Capacity: 240,057,409,536 bytes [240 GB] Sector Size: 512 bytes logical/physical Rotation Rate: Solid State Device Form Factor: 2.5 inches Device is: In smartctl database [for details use: -P show] ATA Version is: ACS-2 T13/2015-D revision 3 SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Thu May 26 11:32:34 2016 NZST SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x00) Offline data collection activity was never started. Auto Offline Data Collection: Disabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: ( 0) seconds. Offline data collection capabilities: (0x11) SMART execute Offline immediate. No Auto Offline data collection support. Suspend Offline collection upon new command. No Offline surface scan supported. Self-test supported. No Conveyance Self-test supported. No Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 2) minutes. Extended self-test routine recommended polling time: ( 10) minutes. SMART Attributes Data Structure revision number: 4 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE\_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN\_FAILED RAW\_VALUE 5 Reallocated\_Sector\_Ct 0x0032 100 100 --- Old\_age Always - 0 9 Power\_On\_Hours 0x0032 002 100 --- Old\_age Always - 2 12 Power\_Cycle\_Count 0x0032 100 100 --- Old\_age Always - 2 166 Min\_W/E\_Cycle 0x0032 100 100 --- Old\_age Always - 0 167 Min\_Bad\_Block/Die 0x0032 100 100 --- Old\_age Always - 24 168 Maximum\_Erase\_Cycle 0x0032 100 100 --- Old\_age Always - 1 169 Total\_Bad\_Block 0x0032 100 100 --- Old\_age Always - 398 171 Program\_Fail\_Count 0x0032 100 100 --- Old\_age Always - 0 172 Erase\_Fail\_Count 0x0032 100 100 --- Old\_age Always - 0 173 Avg\_Write/Erase\_Count 0x0032 100 100 --- Old\_age Always - 0 174 Unexpect\_Power\_Loss\_Ct 0x0032 100 100 --- Old\_age Always - 0 184 End-to-End\_Error 0x0032 100 100 --- Old\_age Always - 0 187 Reported\_Uncorrect 0x0032 100 100 --- Old\_age Always - 0 188 Command\_Timeout 0x0032 100 100 --- Old\_age Always - 0 194 Temperature\_Celsius 0x0022 064 038 --- Old\_age Always - 36 (Min/Max 25/38) 199 SATA\_CRC\_Error 0x0032 100 100 --- Old\_age Always - 0 212 SATA\_PHY\_Error 0x0032 100 100 --- Old\_age Always - 0 230 Perc\_Write/Erase\_Count 0x0032 100 100 --- Old\_age Always - 0 232 Perc\_Avail\_Resrvd\_Space 0x0033 100 100 004 Pre-fail Always - 100 233 Total\_NAND\_Writes\_GiB 0x0032 100 100 --- Old\_age Always - 12 241 Total\_Writes\_GiB 0x0030 253 253 --- Old\_age Offline - 11 242 Total\_Reads\_GiB 0x0030 253 253 --- Old\_age Offline - 3 244 Thermal\_Throttle 0x0032 000 100 --- Old\_age Always - 0 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 No self-tests have been logged. [To run self-tests, use: smartctl -t] Selective Self-tests/Logging not supported

That shows that TRIM is enabled and that it’s in 6Gb/s mode.

Question: what is causing this new SSD to perform so slowly? What can I look at to diagnose this issue?

Hi allistar,

Yes the speed seems slow, there may be various reasons to it, maybe the PCIe adaptor, the driver or even the drive its self etc.

We have never tested a PCIe adapter for this drive, if you want, I can forward this information to our development and have them take a look, but please send the full system info too.

Please note, due to bandwidth reasons, there is no ETA on when will they get back on this.

The reason I’m using a PCIe adapter for SATA is that it’s 6Gb/s while the build in SATA on the motherboard is only 3Gb/s. I will try the SSD on the motherboard SATA headers to see if it makes a difference, but I can’t see it being any faster.

The relevant specs for this computer are:

ASUS P5B deluxe

Processor: Intel QX6700 (quad core 2.6GHz)
6Gb 800MHz SDRAM

PCIe card: Highpoint Rocket 620A plugged into a PCIe-x4 port, though it’s only a x1 card.

I have not installed any specific drivers for this drive or the controller. It just works. I am using an Ext4 filesystem on the SSD, though that shouldn’t be relevant to the speed test as that’s done on the drive itself, not the partition.

What else do you need to know?

There are variety of reasons of a performance drop, is your PCIe port NVMe or SATA ? If you connect a SATA device to PCIe port with an adaptor, there’s no gurantee of the performance you will be getting, because the product is not designed to work that way, and I have no idea what the adaptor does during transfering signal, so my suggestion would be find a SATAIII port and re-test about speed.

I understand the drive works under your current driver, but drivers may cause the drive is not up to full speed too, that’s the reason I want you to update the drivers

The motherboard is quite old so doesn’t have NVMe support. The M/B doesn’t have any SATA3 headers, they are all SATA2 (this is the reason for the PCIe SATA3 adapter). The SATA adapter has native support in Linux, no additional drivers are necessary. I know this from here:

http://www.highpoint-tech.com/USA_new/series_r600-download.htm

I will plug the SSD into the mptherboard SATA2 ports.

Is there an SATA3 expansion card that you can rtecommend for use with SanDisk SSDs for optimum performance?

allistar: I’m also Linux user and interested how you can see from that list that TRIM is enabled? Is it something that’s enabled by default or you need to adjust drive parameters?

To get TRIM working I did this

  • make sure the BIOS is using AHCI and not IDE for the disks. You can tell it is by:

dmesg | grep AHCI

  • use the Ext4 file system. This supports TRIM.

To see if trim is supported on the drive do this:

hdparm -I /dev/sde

(where /dev/sde is the drive).

That should say “Data Set Management TRIM supported” somewhere.

  • make sure you add “discard” to the options for the mount points in /etc/fstab

Yep, I see it, thanks. I’m using XFS, it also supports TRIM.

About discard - after some extensive reading which I did today after getting my Extreme Pro 480GB, I figured out it’s actually not a good idea, because Linux kernel doesn’t implement it efficiently (and it was never fixed as far as I know).

The kernel implementation of realtime trim in 11.2, 11.3, and 11.4 is not optimized. The spec. calls for trim supporting a vectorized list of trim ranges, but as of kernel 3.0 trim is only invoked by the kernel with a single discard / trim range and with current mid 2011 SSDs this has proven to cause a performance degradation instead of a performance increase. There are few reasons to use the kernels realtime discard support with pre-3.1 kernels. It is not known when the kernels discard functionality will be optimized to work beneficially with current generation SSDs.

See this article.

So recommended way is to use periodic TRIM with fstrim. At least on Debian I did this:

sudo cp /usr/share/doc/util-linux/examples/fstrim.{service,timer} /etc/systemd/system sudo systemctl enable fstrim.timer sudo systemctl start fstrim.timer

It creates a systemd weekly timer which will call fstrim -a which does TRIM on each supported partition.

Thanks, that’s interesting. The article was last modified in June 2013, I wonder how relevent it is today.

I’ll do some more research on this and will post here if I’ll find anything.

Sorry allistar,

We don’t have any recommendations for SATA III extension cards…

I have a ocz vortex and a Samsung 850 Evo, listed below in order. Why are my Timing buffered disk reads so much better than his  ‘Timing buffered disk reads: 576 MB in 3.00 seconds = 191.84 MB/sec’ ? With the Sandisk Extreme Pro, shouldn’t the Timing buffered disk reads be better?

I am using just normal Sata cables on a 5 year old motherboard. 

localhost linux # hdparm -tT /dev/sdc /dev/sdc: Timing cached reads: 6890 MB in 2.00 seconds = 3446.09 MB/sec Timing buffered disk reads: 672 MB in 3.00 seconds = 223.69 MB/sec   localhost linux # hdparm -tT /dev/sdb /dev/sdb: Timing cached reads: 6994 MB in 2.00 seconds = 3498.00 MB/sec Timing buffered disk reads: 798 MB in 3.00 seconds = 265.85 MB/sec

The new Extreme Pro SSD from SanDisk is available in_240GB_, 480GB, and 960GB capacities.

change a new one.