for Ampere Altra Processors
When designing large-scale, high-performance storage, solution architects often choose to run FIO which is a very common technique that can be used to generate a baseline storage performance for high performance drives. FIO spawns a number of threads or processes doing a particular type of I/O action as specified by the user. FIO takes a number of global parameters, each inherited by the thread unless otherwise parameters given to them overriding that setting is given. The typical use of FIO is to write a job file matching the I/O load one wants to simulate.
This section of the document guides you through the steps that are required to install and tune your FIO performance benchmark.
Ampere Altra Processor
Memory
Connectivity
Technology & Functionality
Performance
Altra Platform Configuration
Ampere Altra Max Processor
Memory
Connectivity
Technology & Functionality
Performance
SPECrate® 2017_int_base: 359
Altra Max Platform Configuration
Grub Setting
iommu.passthrough=1
Numa setting consideration
Need to bind memory and cpu to the correct numa when using 2P platform under tests.
For numa 0:
numa_mem_policy=bind:0 numa_cpu_nodes=0 cpus_allowed=0-127
For numa 1:
numa_mem_policy=bind:1 numa_cpu_nodes=1 cpus_allowed=128-255
PCIe speed and width check
Check link status for all 24x drives to make sure the PCIe speed and width detected correctly.
[root@localhost samsung]# ./LnkSta.sh LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 8GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok) LnkSta: Speed 16GT/s (ok), Width x4 (ok)
Max Read Request needs set to 512 bytes
[root@localhost samsung]# ./mrr.sh MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes MaxPayload 512 bytes, MaxReadReq 512 bytes MaxPayload 256 bytes, MaxReadReq 512 bytes
Precondition the drives
Prior to using the drives and running benchmark, you need to format, then precondition all the drives.
Random Read
[global] name=random rw=randread bs=4K direct=1 numjobs=16 runtime=600 ioengine=libaio iodepth=64 norandommap group_reporting randrepeat=1 random_generator=tausworthe64
Random Write
[global] name=randomwrite rw=randwrite bs=4K direct=1 numjobs=16 ramp_time=20 runtime=600 ioengine=libaio iodepth=64 norandommap group_reporting randrepeat=1 random_generator=tausworthe64
Sequential Read
[global] name=sequence rw=read bs=128K direct=1 numjobs=4 runtime=600 ioengine=libaio iodepth=64 norandommap group_reporting randrepeat=1 random_generator=tausworthe64
Sequential Write
[global] name=sequence rw=write bs=128K direct=1 numjobs=4 runtime=600 ioengine=libaio iodepth=64 norandommap group_reporting randrepeat=1 random_generator=tausworthe64