# Installing Samsung SSDs (980 Pro PCIe Gen 4 2TB) ###### tags: `LDRD` ## System layout 1. Host server `mu2e-trk-05`, behind `mu2egateway01.fnal.gov` or (`mu2egateway01.fnal.gov`); 2. Gigabyte 3U server PIC gen4 mother boards; 3. Intel(R) Xeon(R) Silver 4310 CPU with 48 threads; 4. total of 62 GB memory; 5. [PCIe Gen 4x16 SSD carrier card](https://www.gigabyte.com/SSD/AORUS-Gen4-AIC-Adaptor#kf) 6. Four SAMSUNG 980 PRO PCIe® 4.0 NVMe SSD 2TB on the carrier card. ```bash= [root@mu2e-trk-05 dingpf]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT ... nvme0n1 259:2 0 1.8T 0 disk nvme1n1 259:1 0 1.8T 0 disk nvme2n1 259:0 0 1.8T 0 disk nvme3n1 259:4 0 1.8T 0 disk ... ``` ## Single SSD read/write test ### EXT4 file system ```bash= # Create ext4 file system [root@mu2e-trk-05 dingpf] mkfs.ext4 /dev/nvme0n1 [root@mu2e-trk-05 dingpf]# fio --name=rand-write --ioengine=libaio --iodepth=256 --rw=randwrite --bs=4k --direct=1 --size=100% --numjobs=12 --runtime=60 --filename=/dev/nvme0n1 --group_reporting=1 rand-write: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=256 ... fio-3.7 Starting 12 processes Jobs: 12 (f=12): [w(12)][10.0%][r=0KiB/s,w=3972MiB/s][r=0,w=1017k IOPS][eta 00m:54sJobs: 12 (f=12): [w(12)][11.7%][r=0KiB/s,w=3968MiB/s][r=0,w=1016k IOPS][eta 00m:53sJobs: 12 (f=12): [w(12)][13.3%][r=0KiB/s,w=3979MiB/s][r=0,w=1019k IOPS][eta 00m:52sJobs: 12 (f=12): [w(12)][15.0%][r=0KiB/s,w=4002MiB/s][r=0,w=1025k IOPS][eta 00m:51sJobs: 12 (f=12): [w(12)][16.7%][r=0KiB/s,w=4009MiB/s][r=0,w=1026k IOPS][eta 00m:50sJobs: 12 (f=12): [w(12)][18.3%][r=0KiB/s,w=4007MiB/s][r=0,w=1026k IOPS][eta 00m:49sJobs: 12 (f=12): [w(12)][20.0%][r=0KiB/s,w=4034MiB/s][r=0,w=1033k IOPS][eta 00m:48sJobs: 12 (f=12): [w(12)][21.7%][r=0KiB/s,w=4061MiB/s][r=0,w=1040k IOPS][eta 00m:47sJobs: 12 (f=12): [w(12)][23.3%][r=0KiB/s,w=4086MiB/s][r=0,w=1046k IOPS][eta 00m:46sJobs: 12 (f=12): [w(12)][25.0%][r=0KiB/s,w=4102MiB/s][r=0,w=1050k IOPS][eta 00m:45sJobs: 12 (f=12): [w(12)][26.7%][r=0KiB/s,w=4090MiB/s][r=0,w=1047k IOPS][eta 00m:44sJobs: 12 (f=12): [w(12)][28.3%][r=0KiB/s,w=4105MiB/s][r=0,w=1051k IOPS][eta 00m:43sJobs: 12 (f=12): [w(12)][30.0%][r=0KiB/s,w=4113MiB/s][r=0,w=1053k IOPS][eta 00m:42sJobs: 12 (f=12): [w(12)][31.7%][r=0KiB/s,w=4128MiB/s][r=0,w=1057k IOPS][eta 00m:41sJobs: 12 (f=12): [w(12)][33.3%][r=0KiB/s,w=4124MiB/s][r=0,w=1056k IOPS][eta 00m:40sJobs: 12 (f=12): [w(12)][35.0%][r=0KiB/s,w=4122MiB/s][r=0,w=1055k IOPS][eta 00m:39sJobs: 12 (f=12): [w(12)][36.7%][r=0KiB/s,w=4123MiB/s][r=0,w=1055k IOPS][eta 00m:38sJobs: 12 (f=12): [w(12)][38.3%][r=0KiB/s,w=4136MiB/s][r=0,w=1059k IOPS][eta 00m:37sJobs: 12 (f=12): [w(12)][40.0%][r=0KiB/s,w=4114MiB/s][r=0,w=1053k IOPS][eta 00m:36sJobs: 12 (f=12): [w(12)][41.7%][r=0KiB/s,w=4133MiB/s][r=0,w=1058k IOPS][eta 00m:35sJobs: 12 (f=12): [w(12)][43.3%][r=0KiB/s,w=4133MiB/s][r=0,w=1058k IOPS][eta 00m:34sJobs: 12 (f=12): [w(12)][45.0%][r=0KiB/s,w=4129MiB/s][r=0,w=1057k IOPS][eta 00m:33sJobs: 12 (f=12): [w(12)][46.7%][r=0KiB/s,w=4125MiB/s][r=0,w=1056k IOPS][eta 00m:32sJobs: 12 (f=12): [w(12)][48.3%][r=0KiB/s,w=4116MiB/s][r=0,w=1054k IOPS][eta 00m:31sJobs: 12 (f=12): [w(12)][50.0%][r=0KiB/s,w=4119MiB/s][r=0,w=1055k IOPS][eta 00m:30sJobs: 12 (f=12): [w(12)][51.7%][r=0KiB/s,w=4132MiB/s][r=0,w=1058k IOPS][eta 00m:29sJobs: 12 (f=12): [w(12)][53.3%][r=0KiB/s,w=4119MiB/s][r=0,w=1054k IOPS][eta 00m:28sJobs: 12 (f=12): [w(12)][55.0%][r=0KiB/s,w=4111MiB/s][r=0,w=1052k IOPS][eta 00m:27sJobs: 12 (f=12): [w(12)][56.7%][r=0KiB/s,w=4076MiB/s][r=0,w=1043k IOPS][eta 00m:26sJobs: 12 (f=12): [w(12)][58.3%][r=0KiB/s,w=4101MiB/s][r=0,w=1050k IOPS][eta 00m:25sJobs: 12 (f=12): [w(12)][60.0%][r=0KiB/s,w=4092MiB/s][r=0,w=1048k IOPS][eta 00m:24sJobs: 12 (f=12): [w(12)][61.7%][r=0KiB/s,w=4076MiB/s][r=0,w=1043k IOPS][eta 00m:23sJobs: 12 (f=12): [w(12)][63.3%][r=0KiB/s,w=4069MiB/s][r=0,w=1042k IOPS][eta 00m:22sJobs: 12 (f=12): [w(12)][65.0%][r=0KiB/s,w=4080MiB/s][r=0,w=1044k IOPS][eta 00m:21sJobs: 12 (f=12): [w(12)][66.7%][r=0KiB/s,w=4057MiB/s][r=0,w=1039k IOPS][eta 00m:20sJobs: 12 (f=12): [w(12)][68.3%][r=0KiB/s,w=4067MiB/s][r=0,w=1041k IOPS][eta 00m:19sJobs: 12 (f=12): [w(12)][70.0%][r=0KiB/s,w=4078MiB/s][r=0,w=1044k IOPS][eta 00m:18sJobs: 12 (f=12): [w(12)][71.7%][r=0KiB/s,w=4106MiB/s][r=0,w=1051k IOPS][eta 00m:17sJobs: 12 (f=12): [w(12)][73.3%][r=0KiB/s,w=4089MiB/s][r=0,w=1047k IOPS][eta 00m:16sJobs: 12 (f=12): [w(12)][75.0%][r=0KiB/s,w=4085MiB/s][r=0,w=1046k IOPS][eta 00m:15sJobs: 12 (f=12): [w(12)][76.7%][r=0KiB/s,w=4091MiB/s][r=0,w=1047k IOPS][eta 00m:14sJobs: 12 (f=12): [w(12)][78.3%][r=0KiB/s,w=4105MiB/s][r=0,w=1051k IOPS][eta 00m:13sJobs: 12 (f=12): [w(12)][80.0%][r=0KiB/s,w=4056MiB/s][r=0,w=1038k IOPS][eta 00m:12sJobs: 12 (f=12): [w(12)][81.7%][r=0KiB/s,w=4079MiB/s][r=0,w=1044k IOPS][eta 00m:11sJobs: 12 (f=12): [w(12)][83.3%][r=0KiB/s,w=4085MiB/s][r=0,w=1046k IOPS][eta 00m:10sJobs: 12 (f=12): [w(12)][85.0%][r=0KiB/s,w=4145MiB/s][r=0,w=1061k IOPS][eta 00m:09sJobs: 12 (f=12): [w(12)][86.7%][r=0KiB/s,w=4168MiB/s][r=0,w=1067k IOPS][eta 00m:08sJobs: 12 (f=12): [w(12)][88.3%][r=0KiB/s,w=4161MiB/s][r=0,w=1065k IOPS][eta 00m:07sJobs: 12 (f=12): [w(12)][90.0%][r=0KiB/s,w=4139MiB/s][r=0,w=1060k IOPS][eta 00m:06sJobs: 12 (f=12): [w(12)][91.7%][r=0KiB/s,w=4137MiB/s][r=0,w=1059k IOPS][eta 00m:05sJobs: 12 (f=12): [w(12)][93.3%][r=0KiB/s,w=4137MiB/s][r=0,w=1059k IOPS][eta 00m:04sJobs: 12 (f=12): [w(12)][95.0%][r=0KiB/s,w=4142MiB/s][r=0,w=1060k IOPS][eta 00m:03sJobs: 12 (f=12): [w(12)][96.7%][r=0KiB/s,w=4145MiB/s][r=0,w=1061k IOPS][eta 00m:02sJobs: 12 (f=12): [w(12)][98.3%][r=0KiB/s,w=3593MiB/s][r=0,w=920k IOPS][eta 00m:01s]Jobs: 12 (f=12): [w(12)][100.0%][r=0KiB/s,w=1678MiB/s][r=0,w=430k IOPS][eta 00m:00s] rand-write: (groupid=0, jobs=12): err= 0: pid=2238: Fri Jun 17 11:23:51 2022 write: IOPS=1031k, BW=4027MiB/s (4222MB/s)(236GiB/60009msec) slat (nsec): min=1187, max=4528.6k, avg=1764.93, stdev=1555.89 clat (usec): min=11, max=41747, avg=2976.81, stdev=1424.69 lat (usec): min=14, max=41749, avg=2978.65, stdev=1424.75 clat percentiles (usec): | 1.00th=[ 1844], 5.00th=[ 2114], 10.00th=[ 2147], 20.00th=[ 2180], | 30.00th=[ 2376], 40.00th=[ 2409], 50.00th=[ 2442], 60.00th=[ 2638], | 70.00th=[ 2868], 80.00th=[ 2966], 90.00th=[ 4817], 95.00th=[ 6390], | 99.00th=[ 8717], 99.50th=[ 9241], 99.90th=[13566], 99.95th=[17171], | 99.99th=[23725] bw ( KiB/s): min=57648, max=506568, per=8.33%, avg=343603.24, stdev=105240.16, samples=1440 iops : min=14412, max=126642, avg=85900.79, stdev=26310.04, samples=1440 lat (usec) : 20=0.01%, 50=0.41%, 100=0.23%, 250=0.04%, 500=0.06% lat (usec) : 750=0.05%, 1000=0.05% lat (msec) : 2=1.28%, 4=81.64%, 10=15.99%, 20=0.23%, 50=0.01% cpu : usr=12.05%, sys=18.87%, ctx=15409824, majf=0, minf=111212 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1% issued rwts: total=0,61857357,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=256 Run status group 0 (all jobs): WRITE: bw=4027MiB/s (4222MB/s), 4027MiB/s-4027MiB/s (4222MB/s-4222MB/s), io=236GiB (253GB), run=60009-60009msec Disk stats (read/write): nvme0n1: ios=43/61793264, merge=0/0, ticks=3/183169609, in_queue=183169612, util=99.95% ``` For reference, the previous generation of SAMSUNG SSD used in the smartSSD yields: ```bash= Run status group 0 (all jobs): WRITE: bw=970MiB/s (1017MB/s), 970MiB/s-970MiB/s (1017MB/s-1017MB/s), io=37.8GiB (40.6GB), run=39917-39917msec Disk stats (read/write): nvme0n1: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=0.00% ``` ### XFS file system - This gives similar result as EXT4 test above. ```bash= [root@mu2e-trk-05 dingpf]# mkfs.xfs /dev/nvme1n1 Discarding blocks...Done. meta-data=/dev/nvme1n1 isize=512 agcount=4, agsize=122094662 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=488378646, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=238466, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@mu2e-trk-05 dingpf]# fio --name=rand-write --ioengine=libaio --iodepth=256 --rw=randwrite --bs=4k --direct=1 --size=100% --numjobs=12 --runtime=60 --filename=/dev/nvme1n1 --group_reporting=1 rand-write: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=256 ... fio-3.7 Starting 12 processes Jobs: 12 (f=12): [w(12)][10.0%][r=0KiB/s,w=4143MiB/s][r=0,w=1061k IOPS][eta 00m:54sJobs: 12 (f=12): [w(12)][11.7%][r=0KiB/s,w=4145MiB/s][r=0,w=1061k IOPS][eta 00m:53sJobs: 12 (f=12): [w(12)][13.3%][r=0KiB/s,w=4142MiB/s][r=0,w=1060k IOPS][eta 00m:52sJobs: 12 (f=12): [w(12)][15.0%][r=0KiB/s,w=4138MiB/s][r=0,w=1059k IOPS][eta 00m:51sJobs: 12 (f=12): [w(12)][16.7%][r=0KiB/s,w=4147MiB/s][r=0,w=1062k IOPS][eta 00m:50sJobs: 12 (f=12): [w(12)][18.3%][r=0KiB/s,w=4137MiB/s][r=0,w=1059k IOPS][eta 00m:49sJobs: 12 (f=12): [w(12)][20.0%][r=0KiB/s,w=4128MiB/s][r=0,w=1057k IOPS][eta 00m:48sJobs: 12 (f=12): [w(12)][21.7%][r=0KiB/s,w=4145MiB/s][r=0,w=1061k IOPS][eta 00m:47sJobs: 12 (f=12): [w(12)][23.3%][r=0KiB/s,w=4141MiB/s][r=0,w=1060k IOPS][eta 00m:46sJobs: 12 (f=12): [w(12)][25.0%][r=0KiB/s,w=4146MiB/s][r=0,w=1062k IOPS][eta 00m:45sJobs: 12 (f=12): [w(12)][26.7%][r=0KiB/s,w=4147MiB/s][r=0,w=1062k IOPS][eta 00m:44sJobs: 12 (f=12): [w(12)][28.3%][r=0KiB/s,w=4148MiB/s][r=0,w=1062k IOPS][eta 00m:43sJobs: 12 (f=12): [w(12)][30.0%][r=0KiB/s,w=4133MiB/s][r=0,w=1058k IOPS][eta 00m:42sJobs: 12 (f=12): [w(12)][31.7%][r=0KiB/s,w=4122MiB/s][r=0,w=1055k IOPS][eta 00m:41sJobs: 12 (f=12): [w(12)][33.3%][r=0KiB/s,w=4137MiB/s][r=0,w=1059k IOPS][eta 00m:40sJobs: 12 (f=12): [w(12)][35.0%][r=0KiB/s,w=4146MiB/s][r=0,w=1061k IOPS][eta 00m:39sJobs: 12 (f=12): [w(12)][36.7%][r=0KiB/s,w=4143MiB/s][r=0,w=1061k IOPS][eta 00m:38sJobs: 12 (f=12): [w(12)][38.3%][r=0KiB/s,w=4138MiB/s][r=0,w=1059k IOPS][eta 00m:37sJobs: 12 (f=12): [w(12)][40.0%][r=0KiB/s,w=4132MiB/s][r=0,w=1058k IOPS][eta 00m:36sJobs: 12 (f=12): [w(12)][41.7%][r=0KiB/s,w=4140MiB/s][r=0,w=1060k IOPS][eta 00m:35sJobs: 12 (f=12): [w(12)][43.3%][r=0KiB/s,w=4141MiB/s][r=0,w=1060k IOPS][eta 00m:34sJobs: 12 (f=12): [w(12)][45.0%][r=0KiB/s,w=4122MiB/s][r=0,w=1055k IOPS][eta 00m:33sJobs: 12 (f=12): [w(12)][46.7%][r=0KiB/s,w=4139MiB/s][r=0,w=1060k IOPS][eta 00m:32sJobs: 12 (f=12): [w(12)][48.3%][r=0KiB/s,w=4138MiB/s][r=0,w=1059k IOPS][eta 00m:31sJobs: 12 (f=12): [w(12)][50.0%][r=0KiB/s,w=4140MiB/s][r=0,w=1060k IOPS][eta 00m:30sJobs: 12 (f=12): [w(12)][51.7%][r=0KiB/s,w=4147MiB/s][r=0,w=1062k IOPS][eta 00m:29sJobs: 12 (f=12): [w(12)][53.3%][r=0KiB/s,w=4146MiB/s][r=0,w=1061k IOPS][eta 00m:28sJobs: 12 (f=12): [w(12)][55.0%][r=0KiB/s,w=4146MiB/s][r=0,w=1061k IOPS][eta 00m:27sJobs: 12 (f=12): [w(12)][56.7%][r=0KiB/s,w=4041MiB/s][r=0,w=1034k IOPS][eta 00m:26sJobs: 12 (f=12): [w(12)][58.3%][r=0KiB/s,w=3993MiB/s][r=0,w=1022k IOPS][eta 00m:25sJobs: 12 (f=12): [w(12)][60.0%][r=0KiB/s,w=4055MiB/s][r=0,w=1038k IOPS][eta 00m:24sJobs: 12 (f=12): [w(12)][61.7%][r=0KiB/s,w=4033MiB/s][r=0,w=1032k IOPS][eta 00m:23sJobs: 12 (f=12): [w(12)][63.3%][r=0KiB/s,w=4073MiB/s][r=0,w=1043k IOPS][eta 00m:22sJobs: 12 (f=12): [w(12)][65.0%][r=0KiB/s,w=4082MiB/s][r=0,w=1045k IOPS][eta 00m:21sJobs: 12 (f=12): [w(12)][66.7%][r=0KiB/s,w=4144MiB/s][r=0,w=1061k IOPS][eta 00m:20sJobs: 12 (f=12): [w(12)][68.3%][r=0KiB/s,w=4132MiB/s][r=0,w=1058k IOPS][eta 00m:19sJobs: 12 (f=12): [w(12)][70.0%][r=0KiB/s,w=4147MiB/s][r=0,w=1062k IOPS][eta 00m:18sJobs: 12 (f=12): [w(12)][71.7%][r=0KiB/s,w=4142MiB/s][r=0,w=1060k IOPS][eta 00m:17sJobs: 12 (f=12): [w(12)][73.3%][r=0KiB/s,w=4130MiB/s][r=0,w=1057k IOPS][eta 00m:16sJobs: 12 (f=12): [w(12)][75.0%][r=0KiB/s,w=4136MiB/s][r=0,w=1059k IOPS][eta 00m:15sJobs: 12 (f=12): [w(12)][76.7%][r=0KiB/s,w=4132MiB/s][r=0,w=1058k IOPS][eta 00m:14sJobs: 12 (f=12): [w(12)][78.3%][r=0KiB/s,w=4142MiB/s][r=0,w=1060k IOPS][eta 00m:13sJobs: 12 (f=12): [w(12)][80.0%][r=0KiB/s,w=4130MiB/s][r=0,w=1057k IOPS][eta 00m:12sJobs: 12 (f=12): [w(12)][81.7%][r=0KiB/s,w=4144MiB/s][r=0,w=1061k IOPS][eta 00m:11sJobs: 12 (f=12): [w(12)][83.3%][r=0KiB/s,w=4139MiB/s][r=0,w=1060k IOPS][eta 00m:10sJobs: 12 (f=12): [w(12)][85.0%][r=0KiB/s,w=4140MiB/s][r=0,w=1060k IOPS][eta 00m:09sJobs: 12 (f=12): [w(12)][86.7%][r=0KiB/s,w=4144MiB/s][r=0,w=1061k IOPS][eta 00m:08sJobs: 12 (f=12): [w(12)][88.3%][r=0KiB/s,w=4139MiB/s][r=0,w=1060k IOPS][eta 00m:07sJobs: 12 (f=12): [w(12)][90.0%][r=0KiB/s,w=4136MiB/s][r=0,w=1059k IOPS][eta 00m:06sJobs: 12 (f=12): [w(12)][91.7%][r=0KiB/s,w=4140MiB/s][r=0,w=1060k IOPS][eta 00m:05sJobs: 12 (f=12): [w(12)][93.3%][r=0KiB/s,w=4130MiB/s][r=0,w=1057k IOPS][eta 00m:04sJobs: 12 (f=12): [w(12)][95.0%][r=0KiB/s,w=4140MiB/s][r=0,w=1060k IOPS][eta 00m:03sJobs: 12 (f=12): [w(12)][96.7%][r=0KiB/s,w=4050MiB/s][r=0,w=1037k IOPS][eta 00m:02sJobs: 12 (f=12): [w(12)][98.3%][r=0KiB/s,w=1694MiB/s][r=0,w=434k IOPS][eta 00m:01s]Jobs: 12 (f=12): [w(12)][100.0%][r=0KiB/s,w=1595MiB/s][r=0,w=408k IOPS][eta 00m:00s] rand-write: (groupid=0, jobs=12): err= 0: pid=6118: Fri Jun 17 11:45:24 2022 write: IOPS=1033k, BW=4033MiB/s (4229MB/s)(236GiB/60012msec) slat (nsec): min=1250, max=970129, avg=1738.50, stdev=649.29 clat (usec): min=14, max=38291, avg=2971.69, stdev=991.46 lat (usec): min=17, max=38293, avg=2973.51, stdev=991.51 clat percentiles (usec): | 1.00th=[ 1991], 5.00th=[ 2376], 10.00th=[ 2606], 20.00th=[ 2606], | 30.00th=[ 2638], 40.00th=[ 2835], 50.00th=[ 2835], 60.00th=[ 2835], | 70.00th=[ 2835], 80.00th=[ 2868], 90.00th=[ 2868], 95.00th=[ 5211], | 99.00th=[ 7177], 99.50th=[ 7832], 99.90th=[10945], 99.95th=[13042], | 99.99th=[19792] bw ( KiB/s): min=72816, max=528120, per=8.33%, avg=344210.81, stdev=64213.87, samples=1440 iops : min=18204, max=132030, avg=86052.68, stdev=16053.46, samples=1440 lat (usec) : 20=0.01%, 50=0.13%, 100=0.03%, 250=0.02%, 500=0.05% lat (usec) : 750=0.03%, 1000=0.04% lat (msec) : 2=0.72%, 4=91.79%, 10=7.06%, 20=0.12%, 50=0.01% cpu : usr=12.42%, sys=18.55%, ctx=15534332, majf=0, minf=65435 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1% issued rwts: total=0,61966236,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=256 Run status group 0 (all jobs): WRITE: bw=4033MiB/s (4229MB/s), 4033MiB/s-4033MiB/s (4229MB/s-4229MB/s), io=236GiB (254GB), run=60012-60012msec Disk stats (read/write): nvme1n1: ios=86/61898489, merge=0/0, ticks=1/183196070, in_queue=183196071, util=99.99% ``` ## Software RAID 0 test ### Configuration #### Wipe out filesystem created during the single ssd read/write test ```bash= # Wipe out filesystem created during the single ssd read/write test [root@mu2e-trk-05 dingpf]# wipefs /dev/nvme0n1 offset type ---------------------------------------------------------------- 0x438 ext4 [filesystem] UUID: f03366cf-5398-4b3f-b380-782fea031ef8 [root@mu2e-trk-05 dingpf]# wipefs /dev/nvme1n1 offset type ---------------------------------------------------------------- 0x0 xfs [filesystem] UUID: c74e0844-186a-4f67-a544-905142e34d9c ``` #### Create software RAID 0 ```bash= [root@mu2e-trk-05 dingpf]# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 mdadm: chunk size defaults to 512K mdadm: /dev/nvme0n1 appears to contain an ext2fs file system size=1953514584K mtime=Wed Dec 31 18:00:00 1969 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. ``` #### Verify disks in RAID 0 ```bash= [root@mu2e-trk-05 dingpf]# mdadm -E /dev/nvme0n1 /dev/nvme0n1: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : 5e09bfc4:9af0d8b8:757cb711:603c9616 Name : mu2e-trk-05.fnal.gov:0 (local to host mu2e-trk-05.fnal.gov) Creation Time : Fri Jun 17 11:52:24 2022 Raid Level : raid0 Raid Devices : 4 Avail Dev Size : 3906764976 sectors (1862.89 GiB 2000.26 GB) Data Offset : 264192 sectors Super Offset : 8 sectors Unused Space : before=264112 sectors, after=0 sectors State : clean Device UUID : 9f0da97b:ee8556b2:8fb3a650:c2f5831e Update Time : Fri Jun 17 11:52:24 2022 Bad Block Log : 512 entries available at offset 8 sectors Checksum : 7c2c4e1a - correct Events : 0 Chunk Size : 512K Device Role : Active device 0 Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing) ``` #### Create file system (XFS) and mount the raid array ```bash= [root@mu2e-trk-05 dingpf]# mkfs.xfs /dev/md0 Discarding blocks...Done. meta-data=/dev/md0 isize=512 agcount=33, agsize=61043072 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=1953382400, imaxpct=5 = sunit=128 swidth=512 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=521728, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@mu2e-trk-05 dingpf]# mkdir /mnt/ssd_raid_0 [root@mu2e-trk-05 dingpf]# mount -t xfs /dev/md0 /mnt/ssd_raid_0 ``` #### Save the raid configuration and mouting point ```bash= [root@mu2e-trk-05 dingpf]# mdadm --detail -scan ARRAY /dev/md0 metadata=1.2 name=mu2e-trk-05.fnal.gov:0 UUID=5e09bfc4:9af0d8b8:757cb711:603c9616 [root@mu2e-trk-05 dingpf]# mdadm --detail -scan > /etc/mdadm.conf [root@mu2e-trk-05 dingpf]# blkid /dev/md0 /dev/md0: UUID="2a87bf1a-8c0d-4d88-aa5e-f7429b4a7e6b" TYPE="xfs" [root@mu2e-trk-05 dingpf]# vim /etc/fstab # added # UUID=2a87bf1a-8c0d-4d88-aa5e-f7429b4a7e6b /mnt/ssd_raid_0 xfs defaults 00 ``` #### Benchmarking results 1. Using 4k block size, achived 860MB/s; 2. Using 1024K block size, achived 13.7GB/s. #### Benchmarking details ##### 4k block size `fio --name=seqwrite --rw=write --direct=1 --ioengine=libaio --bs=4k --numjobs=10 --size=40G --runtime=60 -filename=/mnt/ssd_raid_0/bench_mark2.trash --group_reporting=1` ```bash= [root@mu2e-trk-05 dingpf]# fio --name=seqwrite --rw=write --direct=1 --ioengine=libaio --bs=4k --numjobs=10 --size=40G --runtime=60 -filename=/mnt/ssd_raid_0/bench_ma rk2.trash --group_reporting=1 seqwrite: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1 ... fio-3.7 Starting 10 processes seqwrite: Laying out IO file (1 file / 40960MiB) Jobs: 10 (f=10): [W(10)][100.0%][r=0KiB/s,w=799MiB/s][r=0,w=205k IOPS][eta 00m:00s] seqwrite: (groupid=0, jobs=10): err= 0: pid=14652: Fri Jun 17 12:28:07 2022 write: IOPS=210k, BW=820MiB/s (860MB/s)(48.1GiB/60002msec) slat (usec): min=2, max=369, avg=23.05, stdev=14.56 clat (nsec): min=560, max=7969.9k, avg=23900.13, stdev=18720.36 lat (usec): min=14, max=8039, avg=47.09, stdev=22.52 clat percentiles (nsec): | 1.00th=[12736], 5.00th=[13248], 10.00th=[13632], 20.00th=[15424], | 30.00th=[17536], 40.00th=[19584], 50.00th=[21376], 60.00th=[23936], | 70.00th=[26752], 80.00th=[30592], 90.00th=[37120], 95.00th=[42752], | 99.00th=[57088], 99.50th=[63232], 99.90th=[75264], 99.95th=[80384], | 99.99th=[91648] bw ( KiB/s): min=80944, max=103488, per=10.00%, avg=84004.36, stdev=6546.68, samples=1191 iops : min=20236, max=25872, avg=21001.07, stdev=1636.67, samples=1191 lat (nsec) : 750=0.01%, 1000=0.01% lat (usec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=42.47%, 50=55.35% lat (usec) : 100=2.17%, 250=0.01%, 500=0.01%, 1000=0.01% lat (msec) : 2=0.01%, 4=0.01%, 10=0.01% cpu : usr=5.12%, sys=22.05%, ctx=27472363, majf=0, minf=1626 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=0,12599687,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=820MiB/s (860MB/s), 820MiB/s-820MiB/s (860MB/s-860MB/s), io=48.1GiB (51.6GB), run=60002-60002msec Disk stats (read/write): md0: ios=0/12577358, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=0/3149926, aggrmerge=0/0, aggrticks=0/61142, aggrin_queue=61142, aggrutil=29.64% nvme0n1: ios=0/3150086, merge=0/2, ticks=0/60439, in_queue=60439, util=29.35% nvme1n1: ios=0/3149454, merge=0/0, ticks=0/60580, in_queue=60580, util=29.38% nvme2n1: ios=0/3150083, merge=0/0, ticks=0/60441, in_queue=60441, util=29.34% nvme3n1: ios=0/3150083, merge=0/0, ticks=0/63108, in_queue=63108, util=29.64% ``` ##### 1024k block size `fio --name=seqwrite --rw=write --direct=1 --ioengine=libaio --bs=1024k --numjobs=10 --size=40G --runtime=60 -filename=/mnt/ssd_raid_0/bench_mark.trash --group_reporting=1` ```bash= [root@mu2e-trk-05 dingpf]# fio --name=seqwrite --rw=write --direct=1 --ioengine=lib aio --bs=1024k --numjobs=10 --size=40G --runtime=60 --filename=/mnt/ssd_raid_0/benc h_mark.trash --group_reporting=1 seqwrite: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=1 ... fio-3.7 Starting 10 processes seqwrite: Laying out IO file (1 file / 40960MiB) Jobs: 10 (f=10): [W(10)][12.5%][r=0KiB/s,w=12.7GiB/s][r=0,w=13.0k IOPS][eta 00m:28sJobs: 10 (f=10): [W(10)][15.6%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:27sJobs: 10 (f=10): [W(10)][18.8%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:26sJobs: 10 (f=10): [W(10)][22.6%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:24sJobs: 10 (f=10): [W(10)][25.8%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:23sJobs: 10 (f=10): [W(10)][29.0%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:22sJobs: 10 (f=10): [W(10)][32.3%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:21sJobs: 10 (f=10): [W(10)][35.5%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:20sJobs: 10 (f=10): [W(10)][38.7%][r=0KiB/s,w=12.7GiB/s][r=0,w=12.0k IOPS][eta 00m:19sJobs: 10 (f=10): [W(10)][41.9%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:18sJobs: 10 (f=10): [W(10)][45.2%][r=0KiB/s,w=12.7GiB/s][r=0,w=13.0k IOPS][eta 00m:17sJobs: 10 (f=10): [W(10)][48.4%][r=0KiB/s,w=12.7GiB/s][r=0,w=12.0k IOPS][eta 00m:16sJobs: 10 (f=10): [W(10)][51.6%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:15sJobs: 10 (f=10): [W(10)][54.8%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:14sJobs: 10 (f=10): [W(10)][58.1%][r=0KiB/s,w=12.7GiB/s][r=0,w=13.0k IOPS][eta 00m:13sJobs: 10 (f=10): [W(10)][61.3%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:12sJobs: 10 (f=10): [W(10)][64.5%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:11sJobs: 10 (f=10): [W(10)][67.7%][r=0KiB/s,w=12.7GiB/s][r=0,w=13.0k IOPS][eta 00m:10sJobs: 10 (f=10): [W(10)][71.0%][r=0KiB/s,w=12.7GiB/s][r=0,w=13.1k IOPS][eta 00m:09sJobs: 10 (f=10): [W(10)][74.2%][r=0KiB/s,w=12.7GiB/s][r=0,w=13.0k IOPS][eta 00m:08sJobs: 10 (f=10): [W(10)][77.4%][r=0KiB/s,w=12.7GiB/s][r=0,w=12.0k IOPS][eta 00m:07sJobs: 10 (f=10): [W(10)][80.6%][r=0KiB/s,w=12.7GiB/s][r=0,w=13.0k IOPS][eta 00m:06sJobs: 10 (f=10): [W(10)][83.9%][r=0KiB/s,w=12.7GiB/s][r=0,w=12.0k IOPS][eta 00m:05sJobs: 10 (f=10): [W(10)][87.1%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:04sJobs: 10 (f=10): [W(10)][90.3%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:03sJobs: 10 (f=10): [W(10)][93.5%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:02sJobs: 10 (f=10): [W(10)][96.8%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:01sJobs: 10 (f=10): [W(10)][100.0%][r=0KiB/s,w=12.8GiB/s][r=0,w=13.1k IOPS][eta 00m:00s] seqwrite: (groupid=0, jobs=10): err= 0: pid=10974: Fri Jun 17 12:08:48 2022 write: IOPS=13.1k, BW=12.7GiB/s (13.7GB/s)(400GiB/31382msec) slat (usec): min=30, max=1116, avg=62.19, stdev=25.80 clat (usec): min=116, max=10321, avg=703.04, stdev=466.45 lat (usec): min=155, max=10448, avg=765.36, stdev=464.47 clat percentiles (usec): | 1.00th=[ 204], 5.00th=[ 293], 10.00th=[ 314], 20.00th=[ 343], | 30.00th=[ 383], 40.00th=[ 445], 50.00th=[ 676], 60.00th=[ 889], | 70.00th=[ 963], 80.00th=[ 1012], 90.00th=[ 1057], 95.00th=[ 1090], | 99.00th=[ 1319], 99.50th=[ 4293], 99.90th=[ 4883], 99.95th=[ 5604], | 99.99th=[ 7767] bw ( MiB/s): min= 1252, max= 1320, per=10.00%, avg=1305.30, stdev= 9.53, samples=620 iops : min= 1252, max= 1320, avg=1305.29, stdev= 9.53, samples=620 lat (usec) : 250=2.89%, 500=42.44%, 750=5.98%, 1000=26.34% lat (msec) : 2=21.60%, 4=0.03%, 10=0.73%, 20=0.01% cpu : usr=3.70%, sys=5.17%, ctx=412535, majf=0, minf=3505 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=0,409600,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=12.7GiB/s (13.7GB/s), 12.7GiB/s-12.7GiB/s (13.7GB/s-13.7GB/s), io=400GiB (429GB), run=31382-31382msec Disk stats (read/write): md0: ios=0/1625799, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=0/409601, aggrmerge=0/0, aggrticks=0/226363, aggrin_queue=226363, aggrutil=98.13% nvme0n1: ios=0/409602, merge=0/0, ticks=0/206183, in_queue=206183, util=98.10% nvme1n1: ios=0/409601, merge=0/0, ticks=0/176974, in_queue=176974, util=98.12% nvme2n1: ios=0/409601, merge=0/0, ticks=0/229158, in_queue=229158, util=97.84% nvme3n1: ios=0/409601, merge=0/0, ticks=0/293138, in_queue=293138, util=98.13% ``` ## Next step Next step is to perform similar tests as shown [here](https://hackmd.io/fkXgBQ2xR-CFnob3clI3FA). Installed the following packages from SuperMicro for IPMI configuration: ```bash= IPMICFG_1.33.2_build.220126 IPMIView_2.20.0_build.220309_bundleJRE_Linux_x64 SMCIPMITool_2.26.0_build.220209_bundleJRE_Linux_x64 TAS_1 ```