earlephilhower / ezfio

Simple NVME/SAS/SATA SSD test framework for Linux and Windows
GNU General Public License v2.0
166 stars 52 forks source link

Micron 7450 SSD only works with block sizes >= 256K? #63

Closed rcpao closed 6 months ago

rcpao commented 6 months ago

I added added 256K and 512K block sizes to the list in 'ezfio+256K+512K.py':

# diff ezfio.py ezfio+256K+512K.py
951c951
<     bslist = (512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072)
---
>     bslist = (512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288)

Both drives report 4096 (4K) block size in Linux:

# blockdev --getbsz /dev/nvme0n1
4096
# blockdev --getbsz /dev/nvme1n1
4096
# blockdev --getsize64 /dev/nvme0n1
15362991415296
# blockdev --getsize64 /dev/nvme1n1
1920383410176

This is a Micron 7450 which ezfio only starts working at 256K block size:

# ./ezfio+256K+512K.py -d /dev/nvme1n1 -u 1 --yes
***************************************************************************************************
ezFio test parameters:

               Drive: /dev/nvme1n1
               Model: Micron_7450_MTFDKBG1T9TFR
              Serial: 22253C1BD8D3
       AvailCapacity: 1788 GiB
      TestedCapacity: 17 GiB
        TestedOffset: 0 GiB
                 CPU: Intel Xeon Platinum 8452Y
               Cores: 72
           Frequency: 2000
         FIO Version: fio-3.28

Test Description                                                        BW(MB/s)      IOPS  Lat(us)
----------------------------------------------------------------------- -------- --------- --------

---Sequential Preconditioning---
Sequential Preconditioning Pass 1                                           DONE      DONE     DONE
Sequential Preconditioning Pass 2                                           DONE      DONE     DONE

---Sustained Multi-Threaded Sequential Read Tests by Block Size---
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=512        0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=1024       0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=2048       0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=4096       0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=8192       0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=16384      0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=32768      0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=65536      0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=131072     0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=262144 4,920.92    19,684  13004.5
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=524288 4,921.25     9,843  26007.2
...

This is a normal working 4Kn drive:

# ./ezfio+256K+512K.py -d /dev/nvme0n1 -u 1 --yes
***************************************************************************************************
ezFio test parameters:

               Drive: /dev/nvme0n1
               Model: SVU2Q15T4M1M1A41
              Serial: SH234601357
       AvailCapacity: 14307 GiB
      TestedCapacity: 143 GiB
        TestedOffset: 0 GiB
                 CPU: Intel Xeon Platinum 8452Y
               Cores: 72
           Frequency: 2000
         FIO Version: fio-3.28

Test Description                                                        BW(MB/s)      IOPS  Lat(us)
----------------------------------------------------------------------- -------- --------- --------

---Sequential Preconditioning---
Sequential Preconditioning Pass 1                                           DONE      DONE     DONE
Sequential Preconditioning Pass 2                                           DONE      DONE     DONE

---Sustained Multi-Threaded Sequential Read Tests by Block Size---
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=512        0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=1024       0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=2048       0.00         0      0.0
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=4096   1,965.01   503,042    508.6
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=8192   3,632.61   464,974    550.3
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=16384  6,005.71   384,366    665.8
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=32768  10,319.91   330,237    774.9
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=65536  13,517.47   216,279   1183.4
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=131072 13,312.88   106,503   2403.3
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=262144 13,302.66    53,211   4810.5
Sustained Multi-Threaded Sequential Read Tests by Block Size, BS=524288 13,303.76    26,608   9620.6
...
earlephilhower commented 6 months ago

Check the FIO .job and .log files for the non-run blocksizes. They should explain what's going on, and point to a solution.

rcpao commented 6 months ago

From details_1920GB_72cores_2000MHznvme1n1{redacted}_2024-05-08_01-41-15/TestSeq_w0_bs512_threads1_iodepth256_nvme1n1.out: [STDOUT] Test not run because block size 512 below iominsize 262144 ...

$ sudo blockdev --getiomin /dev/nvme0n1 4096 $ sudo blockdev --getiomin /dev/nvme1n1 262144

which ends up being a duplicate of https://github.com/earlephilhower/ezfio/issues/25

Thank you Earle!