SAS SSD Read slower than Write

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

llowrey

Active Member
Feb 26, 2018
167
138
43
I just received a number of Samsung PM1633 1.92TB SSDs. They initially showed up as 1.6TB, presumably due to over-provisioning. They were also 512e/4096. I used sg_format to format to 4096 and ended up with the full 1.92TB.

The Samsung brochure lists sequential read as "up to" 1,400MB/s and write as 930MB/s. Using dd, I am seeing 700MB/s read and 800MB/s write. I'm not surprised by the write speed since I would not expect it to be as high as the 3.84TB variant. The read speed, though, is only half of my expectation.

One thing I did notice, when reading via dd, is that iostat reports the average request size as 8 (which afaik is still 512 sized sectors even though the device is 4k). So, it looks like it reads only 4KB at a time. When I read from a NVMe device I see the average request size as 256 (64KB) and a much higher speed. It would not surprise me if the sequential read speed was low because IOs were small (4k).

I also noticed that the second PHY does not seem to be connected. The backplane expander is supposed to support wide connections (the connectors definitely have the extra contacts) and I'm using a SAS3008 controller. My expectation is that both PHYs should be connected.

Code:
Vendor:               SAMSUNG
Product:              MZILS1T9HCHP/0NW
Revision:             SP00
Compliance:           SPC-4
User Capacity:        1,920,383,410,176 bytes [1.92 TB]
Logical block size:   4096 bytes
LU is resource provisioned, LBPRZ=1
Rotation Rate:        Solid State Device
Form Factor:          2.5 inches
Logical Unit id:      0x5002deadbeefcafe
Serial number:        S32CNCAH3xxxxx
Device type:          disk
Transport protocol:   SAS (SPL-3)
Local Time is:        Tue Mar 23 13:45:24 2021 EDT
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Enabled
Read Cache is:        Enabled
Writeback Cache is:   Enabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Percentage used endurance indicator: 0%
Current Drive Temperature:     43 C
Drive Trip Temperature:        60 C

Manufactured in week 10 of year 2016
Accumulated start-stop cycles:  124
Specified load-unload count over device lifetime:  0
Accumulated load-unload cycles:  0
Elements in grown defect list: 0

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:          0        0         0         0          0       9355.437           0
write:         0        0         0         0          0        412.205           0

Non-medium error count:       32

No Self-tests have been logged

Background scan results log
  Status: scan is active
    Accumulated power on time, hours:minutes 25847:14 [1550834 minutes]
    Number of background scans performed: 33,  scan progress: 1.84%
    Number of background medium scans performed: 33

Protocol Specific port log page for SAS SSP
relative target port id = 1
  generation code = 3
  number of phys = 1
  phy identifier = 0
    attached device type: expander device
    attached reason: SMP phy control function
    reason: loss of dword synchronization
    negotiated logical link rate: phy enabled; 12 Gbps
    attached initiator port: ssp=0 stp=0 smp=0
    attached target port: ssp=0 stp=0 smp=1
    SAS address = 0x500253cafebabe82
    attached SAS address = 0x5001deadbeefcafe
    attached phy identifier = 22
    Invalid DWORD count = 199
    Running disparity error count = 199
    Loss of DWORD synchronization = 1
    Phy reset problem = 0
    Phy event descriptors:
     Received ERROR  count: 2
     Received address frame error count: 0
     Received abandon-class OPEN_REJECT count: 0
     Received retry-class OPEN_REJECT count: 807299
     Received SSP frame error count: 0
relative target port id = 2
  generation code = 3
  number of phys = 1
  phy identifier = 1
    attached device type: no device attached
    attached reason: unknown
    reason: power on
    negotiated logical link rate: phy enabled; unknown
    attached initiator port: ssp=0 stp=0 smp=0
    attached target port: ssp=0 stp=0 smp=0
    SAS address = 0x500253cafebabe83
    attached SAS address = 0x0
    attached phy identifier = 0
    Invalid DWORD count = 0
    Running disparity error count = 0
    Loss of DWORD synchronization = 0
    Phy reset problem = 0
    Phy event descriptors:
     Received ERROR  count: 0
     Received address frame error count: 0
     Received abandon-class OPEN_REJECT count: 0
     Received retry-class OPEN_REJECT count: 0
     Received SSP frame error count: 0
In the grand scheme of things, the sequential speed is fine as my workload is random. Still, I'd like to resolve this if possible.

Any suggestions/advice is greatly appreciated!