2 min read

Minio S3 small setup -22.8 Gb/sec read.

Minio S3 small setup -22.8  Gb/sec read.

Small S3 minio setup for benchmarking Iceberg/Delta on prem with S3.

This is the non clustred minio setup gives 22.8 Gigabyte/Sec sustained read which is better than mediocre ! Tested with Wasabi's s3 performance bench in Go.

(base) rickard@Allfadern:./s3-benchmark -a minioadmin -b data2 -s bajsanka  -u http://localhost:9000 -z 16M -t 32

Wasabi benchmark program v2.0
Parameters: url=http://localhost:9000, bucket=data2, region=us-east-1, duration=60, threads=32, loops=1, size=16M

        status code: 409, request id: 175CE2A0FF5F183D, host id: 
Loop 1: PUT time 60.0 secs, objects = 22838, speed = 5.9GB/sec, 380.3 operations/sec. Slowdowns = 0
Loop 1: GET time 60.0 secs, objects = 87707, speed = 22.8GB/sec, 1461.2 operations/sec. Slowdowns = 0
Loop 1: DELETE time 1.7 secs, 13700.5 deletes/sec. Slowdowns = 0

Ingredients workstation (32 core AMD Threadripper pro):

  • Minio Single mode
  • 4x samsung 1735 NVME pci 4.0
  • ASUS Pro WS WRX80E-SAGE SE

My installation script with settings can be found here https://github.com/Ignalina/racksetup/tree/main/dist/rocky_9_1/installation_kits/singleminio

Doing this with 4x Samsung 9a3 NVME PCI 4.0 on a normal server platform.

s3-benchmark]# ./s3-benchmark -a minioadmin -b data2 -s changeme  -u http://localhost:9000 -z 16M -t 48
Wasabi benchmark program v2.0
Parameters: url=http://localhost:9000, bucket=data2, region=us-east-1, duration=60, threads=48, loops=1, size=16M

Loop 1: PUT time 60.1 secs, objects = 23566, speed = 6.1GB/sec, 392.3 operations/sec. Slowdowns = 0
Loop 1: GET time 60.0 secs, objects = 82305, speed = 21.4GB/sec, 1371.0 operations/sec. Slowdowns = 0
Loop 1: DELETE time 2.0 secs, 12032.6 deletes/sec. Slowdowns = 0

Ingredients Server (24 core Supermicro):

  • Minio Single mode
  • 4x samsung 9A3 NVME pci 4.0
  • Supermicro H12ssw-nt
  • Retimer AOC-SLG4-4E4T connecting NVME's drive

My installation script with settings can be found here https://github.com/Ignalina/racksetup/tree/main/dist/rocky_9_1/installation_kits/singleminio

Each Samsung disk has the following setup (4096 bytes blocks)

root@Allfadern:/var# nvme id-ns -H /dev/nvme1n1
NVME Identify Namespace 1:
....
LBA Format  0 : Metadata Size: 0   bytes - Data Size: 512 bytes - Relative Performance: 0x1 Better 
LBA Format  1 : Metadata Size: 8   bytes - Data Size: 512 bytes - Relative Performance: 0x3 Degraded 
LBA Format  2 : Metadata Size: 0   bytes - Data Size: 4096 bytes - Relative Performance: 0 Best (in use)
LBA Format  3 : Metadata Size: 8   bytes - Data Size: 4096 bytes - Relative Performance: 0x2 Good 
LBA Format  4 : Metadata Size: 64  bytes - Data Size: 4096 bytes - Relative Performance: 0x3 Degraded 

You can change (WARNING DELETES DATA!!!!!!!) between drives suggested optimal lba (block size) by "nvme format --lbaf=X /dev/nvme1n1 --force" where X is given by prev command (nvme id-ns -H /dev/nvme1n1)

The /etc/fstab showing xfs filesystem per disk

LABEL=DISK1      /mnt/disk1     xfs     defaults,noatime  0       2
LABEL=DISK2      /mnt/disk2     xfs     defaults,noatime  0       2
LABEL=DISK3      /mnt/disk3     xfs     defaults,noatime  0       2
LABEL=DISK4      /mnt/disk4     xfs     defaults,noatime  0       2

The etc/default/minio

MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=bajsanka
MINIO_OPTS="--console-address :9001 --address :9000"
MINIO_VOLUMES="/mnt/disk{1...4}"

Here is me attempting to install last Samsung 1735 Drive while filming and listening to MBR (Master Boot Record).