Stress testing of storage systems on Elbrus based on the new Linux kernel version 5.4







8 5.4 : 1,4 IOPS! , , β€” . v5.4 - 8/ .







, - 5.4, , . .







e2k 5.4, 2021 , , , .







5.4 , , :







:







  • -, IO ;
  • ;
  • β€” (LCC 1.25).


:







  • -, IO ;
  • – .




, . , FC- , 12 SAS SSD .







:







  • Linux- (2xIntel Xeon E5-2603 v4 (6 cores, 1,70Ghz), 64 GB DDR4, 2xFC- 16G 2 ) – 1.
  • FC 16G – 1 .
  • 2-12 (2x 8 (8 cores, 1,20Ghz), 32 GB DDR3, 2xFE FC-adaptor 16G 2 port, 12xSAS SSD 960 GB) β€” 1


.















Flexible IO (FIO).







ALL-Flash . DDP (Dynamic Disk Pool). LUN- RAID-10 (8 . 500 ).







LUN- (, 4 ), .







, :







4k







  • 100%_read_4k_sequential
  • 100%_write_4k_sequential


4k







  • 100%_read_4k_random
  • 100%_write_4k_random


128k







  • 100%_read_128k_sequential
  • 100%_write_128k_sequential


, , .







, , RAM- , -, . ( ). RAM , .. , . RAM-, . RAM – . RAM-, , . - .







, , FIO.







100%_read_4k_sequential

[global]

blocksize=4k

size=80%

direct=1

buffered=0

ioengine=libaio

iodepth=128

group_reporting

rw=read

numjobs=16

runtime=2400

time_based=1

per_job_logs=0

log_avg_msec=30000

write_bw_log=./logs/read-iodepth-128-numjobs-16

write_iops_log=./logs/read-iodepth-128-numjobs-16

write_lat_log=./logs/read-iodepth-128-numjobs-16

[job-1]

filename=/dev/sdj

[job-2]

filename=/dev/sdc

[job-3]

filename=/dev/sdd

[job-4]

filename=/dev/sde

[job-5]

filename=/dev/sdf

[job-6]

filename=/dev/sdg

[job-7]

filename=/dev/sdh

[job-8]

filename=/dev/sdi







100%_write_4k_sequential

[global]

blocksize=4k

size=80%

direct=1

buffered=0

ioengine=libaio

iodepth=128

group_reporting

rw=write

numjobs=16

runtime=2400

time_based=1







write_bw_log=./logs/4k-seq-write.results



write_iops_log=./logs/4k-seq-write.results



write_lat_log=./logs/4k-seq-write.results



[job-1]

filename=/dev/sdj

[job-2]

filename=/dev/sdc

[job-3]

filename=/dev/sdd

[job-4]

filename=/dev/sde

[job-5]

filename=/dev/sdf

[job-6]

filename=/dev/sdg

[job-7]

filename=/dev/sdh

[job-8]

filename=/dev/sdi







100%_read_4k_random

[global]

blocksize=4k

size=80%

direct=1

buffered=0

ioengine=libaio

iodepth=64

group_reporting

rw=randread

numjobs=2

runtime=2400

time_based=1

per_job_logs=0

log_avg_msec=30000

write_bw_log=./logs/4k-rand-read.results

write_iops_log=./logs/4k-rand-read.results

write_lat_log=./logs/4k-rand-read.results

[job-1]

filename=/dev/sdc

[job-2]

filename=/dev/sdd

[job-3]

filename=/dev/sde

[job-4]

filename=/dev/sdf

[job-5]

filename=/dev/sdg

[job-6]

filename=/dev/sdh

[job-7]

filename=/dev/sdi

[job-8]

filename=/dev/sdj







100%_write_4k_random

[global]

blocksize=4k

size=80%

direct=1

buffered=0

ioengine=libaio

iodepth=16

group_reporting

rw=randwrite

numjobs=2

runtime=2400

time_based=1

per_job_logs=0

log_avg_msec=30000

write_bw_log=./logs/4k-rand-write.results

write_iops_log=./logs/4k-rand-write.results

write_lat_log=./logs/4k-rand-write.results

[job-1]

filename=/dev/sdc

[job-2]

filename=/dev/sdd

[job-3]

filename=/dev/sde

[job-4]

filename=/dev/sdf

[job-5]

filename=/dev/sdg

[job-6]

filename=/dev/sdh

[job-7]

filename=/dev/sdi

[job-8]

filename=/dev/sdj







100%_read_128k_sequential

[global]

blocksize=128k

size=80%

direct=1

buffered=0

ioengine=libaio

iodepth=128

group_reporting

rw=read

numjobs=16

runtime=2400

time_based=1

per_job_logs=0

log_avg_msec=30000

write_bw_log=./logs/128k-seq-read.results

write_iops_log=./logs/128k-seq-read.results

write_lat_log=./logs/128k-seq-read.results

[job-1]

filename=/dev/sdj

[job-2]

filename=/dev/sdc

[job-3]

filename=/dev/sdd

[job-4]

filename=/dev/sde

[job-5]

filename=/dev/sdf

[job-6]

filename=/dev/sdg

[job-7]

filename=/dev/sdh

[job-8]

filename=/dev/sdi







100%_write128k_sequential

[global]

blocksize=128k

size=80%

direct=1

buffered=0

ioengine=libaio

iodepth=16

group_reporting

rw=write

numjobs=2

runtime=2400

time_based=1

per_job_logs=0

log_avg_msec=30000

write_bw_log=./logs/128k-seq-write.results

write_iops_log=./logs/128k-seq-write.results

write_lat_log=./logs/128k-seq-write.results

[job-1]

filename=/dev/sdj

[job-2]

filename=/dev/sdc

[job-3]

filename=/dev/sdd

[job-4]

filename=/dev/sde

[job-5]

filename=/dev/sdf

[job-6]

filename=/dev/sdg

[job-7]

filename=/dev/sdh

[job-8]









4k



100%_read_4k_sequential







CPU RAM















- , IOPS latency















100%_write_4k_sequential







CPU RAM















- , IOPS latency















:













4k , !1,4 ! IOPS 700k . 4,19 (371k 233k IOPS), , .







CPU, 20% (69/71% 76/92%).







, , , , , . , 4,19.







4k



100%_read_4k_random







CPU RAM















- , IOPS latency















100%_write_4k_random







CPU RAM















- , IOPS latency















:













, . , 118k IOPS 84k IOPS CPU.







, 100% ( ). , 95% : 1) ; 2) . .







. , , , (3 8 ), , . - , , .







128k



100%_read_128k_sequential







CPU RAM















- , IOPS latency















100%_write_128k_sequential







CPU RAM















- , IOPS latency















:













, . (0,4-0,5 5 – 6 x-86).







, . (5,7 / 5.4 2,6 / 4.19) 0,3 ! (52% 5,4 75% 4,19).







. , , . 11 ( 0,5 ), , .. . – , . - . (74% 95%).







8 , 5.4



5.4 – , 5.4 –













, 8, 4.19







5.4 – , 5.4 –













! 5.4 8 (2016 . ). , – IOPS – .







, , , -, , ..







, , , .







( ), , , .







– 21- 16, , , , - , , ( vAIR?))).







! «» vAIR, ( ), -.







, , .







. , .








All Articles