Écriture séquentielle de disque Linux, méthode d'écriture aléatoire_Linux

2020-02-14

I. Préface

● Une écriture aléatoire entraînera un changement constant de la tête, ce qui réduira considérablement l'efficacité. Les têtes d'écriture séquentielle n'auront guère besoin de changer de voie, ou le temps de changement de voie sera court
● Cet article décrit les différences spécifiques entre les deux et les appels de noyau correspondants.

Deuxièmement, l'anneau Préparation environnementale

                                                                       

Troisièmement, introduction de fio

Le test fio peut refléter l'état de la lecture et de l'écriture. Nous devons nous concentrer sur plusieurs indicateurs clés dans le rapport de sortie fio:
slat: fait référence à la latence de soumission des E / S à l'exécution réelle des E / S
clat: fait référence à la latence d'achèvement de la soumission des E / S à l'achèvement des E / S
lat: se réfère au temps total entre la création de fio des E / S et l'achèvement des E / S
bw: débit
iops: E / S par seconde

Quatre, test d'écriture synchrone

(1) écriture aléatoire synchrone

Fio est principalement utilisé comme outil de test. Pour pouvoir voir les appels système, utilisez l'outil strace. La commande ressemble à ceci:

Testons d'abord une écriture aléatoire


 strace -f -tt -o /tmp/randwrite.log -D fio -name = randwrite -rw = randwrite \
 -direct = 1 -bs = 4k -size = 1G -numjobs = 1 -group_reporting -filename = / tmp / test.db 
 

Extraire les informations clés


 root @ wilson-ubuntu: ~ # strace -f -tt -o /tmp/randwrite.log -D fio -name = randwrite -rw = randwrite \
 > -direct = 1 -bs = 4k -size = 1G -numjobs = 1 -group_reporting -filename = / tmp / test.db
 randwrite: (g = 0): rw = randwrite, bs = 4K-4K / 4K-4K / 4K-4K, ioengine = sync, iodepth = 1
 fio-2.2.10
 Démarrage d'un processus
 ...
 randwrite: (groupid = 0, jobs = 1): err = 0: pid = 26882: mer 14 août 10:39:02 2019
  écriture: io = 1024,0 Mo, bw = 52526 Ko / s, iops = 13131, runt = 19963 msec
  clat (usec): min = 42, max = 18620, moy = 56,15, stdev = 164,79
   lat (usec): min = 42, max = 18620, moy = 56,39, stdev = 164,79
 ...
  bw (Ko / s): min = 50648, max = 55208, par = 99,96%, moy = 52506,03, stdev = 1055,83
 ...

 Exécuter le groupe d'état 0 (tous les travaux):
  ÉCRITURE: io = 1024,0 Mo, aggrb = 52525 Ko / s, minb = 52525 Ko / s, maxb = 52525 Ko / s, menthe = 19963 ms, maxt = 19963 ms

 Statistiques du disque (lecture / écriture):
 ...
  sda: ios = 0/262177, fusion = 0/25, ticks = 0/7500, in_queue = 7476, util = 36,05% 
 

Répertorie les informations sur lesquelles nous devons nous concentrer:

(1) clat, le temps moyen est d'environ 56 ms

(2) lat, la durée moyenne est d'environ 56 ms

(3) pc, le débit est d'environ 52M

Regardez les informations d'appel du noyau:


 root @ wilson-ubuntu: ~ # plus /tmp/randwrite.log
 ...
 26882 10: 38: 41.919904 lseek (3, 665198592, SEEK_SET) = 665198592
 26882 10: 38: 41.919920 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 200 \ 36 \ 31 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \  343 \ 6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.919969 lseek (3, 4313088, SEEK_SET) = 4313088
 26882 10: 38: 41.919985 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 200 \ 36 \ 31 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \  343 \ 6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920032 lseek (3, 455880704, SEEK_SET) = 455880704
 26882 10: 38: 41.920048 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 200 \ 36 \ 31 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \  343 \ 6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920096 lseek (3, 338862080, SEEK_SET) = 338862080
 26882 10: 38: 41.920112 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 2402 \ 24 \\ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \ 343 \ 6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920161 lseek (3, 739086336, SEEK_SET) = 739086336
 26882 10: 38: 41.920177 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 2402 \ 24 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \ 343 \  6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920229 lseek (3, 848175104, SEEK_SET) = 848175104
 26882 10: 38: 41.920245 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 2402 \ 24 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \ 343 \  6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920296 lseek (3, 1060147200, SEEK_SET) = 1060147200
 26882 10: 38: 41.920312 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 2402 \ 24 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \ 343 \  6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920362 lseek (3, 863690752, SEEK_SET) = 863690752
 26882 10: 38: 41.920377 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 2402 \ 24 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \ 343 \  6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920428 lseek (3, 279457792, SEEK_SET) = 279457792
 26882 10: 38: 41.920444 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 2402 \ 24 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \ 343 \  6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920492 lseek (3, 271794176, SEEK_SET) = 271794176
 26882 10: 38: 41.920508 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 2402 \ 24 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \ 343 \  6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 26882 10: 38: 41.920558 lseek (3, 1067864064, SEEK_SET) = 1067864064
 26882 10: 38: 41.920573 écriture (3, "\ 220 \ 240 @ \ 6 \ 371 \ 341 \ 277> \ 0 \ 2402 \ 24 \ 0 \ 0 \ 0 \ 0 \ 202 \ 2 \ 7 \ 320 \ 343 \  6H \ 26P \ 340 \ 277 \ 370 \ 330 \ 30e \ 30 "..., 4096) = 4096
 ... 
 

Ranseek pour localiser le décalage de fichier actuel avant chaque lecture aléatoire

Écriture séquentielle synchrone

Testez l'écriture séquentielle en utilisant la méthode qui vient d'être décrite


 root @ wilson-ubuntu: ~ # strace -f -tt -o /tmp/write.log -D fio -name = write -rw = write \
 -direct = 1 -bs = 4k -size = 1G -numjobs = 1 -group_reporting -filename = / tmp / test.db
 écriture: (g = 0): rw = écriture, bs = 4K-4K / 4K-4K / 4K-4K, ioengine = sync, iodepth = 1
 fio-2.2.10
 Démarrage d'un processus
 Tâches: 1 (f = 1): [W (1)] [100,0% terminé] [0 Ko / 70432 Ko / 0 Ko / s] [0 / 17,7 Ko / 0 iops] [eta 00 m: 00 s]
 écrire: (groupid = 0, jobs = 1): err = 0: pid = 27005: mer 14 août 10:53:02 2019
  écriture: io = 1024,0 Mo, bw = 70238 Ko / s, iops = 17559, runt = 14929 msec
  clat (usec): min = 43, max = 7464, moy = 55,95, stdev = 56,24
   lat (usec): min = 43, max = 7465, moy = 56,15, stdev = 56,25
 ...
  pc (Ko / s): min = 67304, max = 72008, par = 99,98%, moy = 70225,38, stdev = 1266,88
 ...

 Exécuter le groupe d'état 0 (tous les travaux):
  ÉCRITURE: io = 1024,0 Mo, aggrb = 70237 Ko / s, minb = 70237 Ko / s, maxb = 70237 Ko / s, menthe = 14929 ms, maxt = 14929 ms

 Statistiques du disque (lecture / écriture):
 ...
  sda: ios = 0/262162, fusion = 0/10, ticks = 0/6948, in_queue = 6932, util = 46,49% 
 

Vous pouvez voir:

Le débit a augmenté à environ 70 millions

Regardez à nouveau l'appel du noyau:


 root @ wilson-ubuntu: ~ # plus /tmp/write.log
 ...
 27046 10: 54: 28.194508 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 360 \ t \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194568 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194627 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194687 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194747 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194807 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194868 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194928 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194988 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195049 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195110 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195197 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195262 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195330 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195426 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195497 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195567 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195637 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195704 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195757 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195807 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195859 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195910 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195961 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196012 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196062 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196112 write (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \ 0 \ 0 \ 0 \  0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194687 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194747 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194807 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194868 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194928 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.194988 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195049 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195110 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195197 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195262 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195330 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195426 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195497 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195567 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195637 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195704 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195757 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195807 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195859 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195910 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.195961 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196012 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196062 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 220 \ 24 \  0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196112 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196162 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196213 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196265 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196314 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196363 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196414 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196472 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196524 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 27046 10: 54: 28.196573 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \  0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096
 ... 
 

En raison des lectures séquentielles, il n’est pas nécessaire de localiser à plusieurs reprises le décalage du fichier, vous pouvez donc vous concentrer sur les opérations d’écriture

Cinquièmement, indicateur de lamelle

D'après le test ci-dessus, nous n'avons pas trouvé de lamelle dans le rapport de test de fio. En effet, les opérations ci-dessus sont synchrones. Pour les E / S synchrones, en raison de la soumission et de l'achèvement des E / S. Est une action, donc la latte est en fait le temps pour que les E / S se terminent

Écriture séquentielle asynchrone, ajoutez la commande d'écriture séquentielle synchrone -ioengine = libaio:


 root @ wilson-ubuntu: ~ # fio -name = write -rw = write -ioengine = libaio -direct = 1 -bs = 4k -size = 1G -numjobs = 1 -group_reporting -filename = / tmp / test.db
 écriture: (g = 0): rw = écriture, bs = 4K-4K / 4K-4K / 4K-4K, ioengine = libaio, iodepth = 1
 fio-2.2.10
 Démarrage d'un processus
 Tâches: 1 (f = 1): [W (1)] [100,0% terminé] [0 Ko / 119,3 Mo / 0 Ko / s] [0 / 30,6 Ko / 0 iops] [eta 00 min: 00 s]
 écrire: (groupid = 0, jobs = 1): err = 0: pid = 27258: mer 14 août 11:14:36 ​​2019
  écriture: io = 1024,0 Mo, bw = 120443 Ko / s, iops = 30110, runt = 8706 msec
  lamelle (usec): min = 3, max = 70, moy = 4,31, stdev = 1,56
  clat (usec): min = 0, max = 8967, moy = 28,13, stdev = 55,68
   lat (usec): min = 22, max = 8976, moy = 32,53, stdev = 55,72
 ...
  bw (Ko / s): min = 118480, max = 122880, par = 100,00%, moy = 120467,29, stdev = 1525,68
 ...

 Exécuter le groupe d'état 0 (tous les travaux):
  ÉCRITURE: io = 1024,0 Mo, aggrb = 120442 Ko / s, minb = 120442 Ko / s, maxb = 120442 Ko / s, menthe = 8706 ms, maxt = 8706 ms

 Statistiques du disque (lecture / écriture):
 ...
  sda: ios = 0/262147, fusion = 0/1, ticks = 0/6576, in_queue = 6568, util = 74,32% 
 

Vous pouvez voir que l'indicateur de lamelle apparaît, lat est approximativement égal à la somme de lamelle + clat (valeur moyenne moyenne); et après le passage à io asynchrone, le débit a été considérablement amélioré, environ 120M

Six, résumé

● fio doit être utilisé comme outil de référence pour les disques. Lorsque vous obtenez une machine (physique ou cloud), vous devez effectuer un test de référence sur les disques de la machine dès que possible. ● Tous les tests de cet article contournent le cache. Dans les applications réelles, l'impact du cache doit être pris en compte.

Ce qui précède est l'écriture séquentielle et aléatoire du disque Linux présentée par Xiaobian à tout le monde. J'espère que cela sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message. Xiaobian vous répondra à temps. Merci beaucoup pour votre soutien au site!
Si vous pensez que cet article vous est utile, veuillez le réimprimer, veuillez en indiquer la source, merci!

ite (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196162 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196213 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196265 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196314 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196363 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196414 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196472 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196524 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 27046 10: 54: 28.196573 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 ...

En raison des lectures séquentielles, il n’est pas nécessaire de localiser à plusieurs reprises le décalage du fichier, vous pouvez donc vous concentrer sur les opérations d’écriture

Cinquièmement, indicateur de lamelle

D'après le test ci-dessus, nous n'avons pas trouvé de lamelle dans le rapport de test de fio. En effet, les opérations ci-dessus sont synchrones. Pour les E / S synchrones, en raison de la soumission et de l'achèvement des E / S. Est une action, donc la latte est en fait le temps pour que les E / S se terminent

Écriture séquentielle asynchrone, ajoutez la commande d'écriture séquentielle synchrone -ioengine = libaio:


 root @ wilson-ubuntu: ~ # fio -name = write -rw = write -ioengine = libaio -direct = 1 -bs = 4k -size = 1G -numjobs = 1 -group_reporting -filename = / tmp / test.db
 écriture: (g = 0): rw = écriture, bs = 4K-4K / 4K-4K / 4K-4K, ioengine = libaio, iodepth = 1
 fio-2.2.10
 Démarrage d'un processus
 Tâches: 1 (f = 1): [W (1)] [100,0% terminé] [0 Ko / 119,3 Mo / 0 Ko / s] [0 / 30,6 Ko / 0 iops] [eta 00 min: 00 s]
 écrire: (groupid = 0, jobs = 1): err = 0: pid = 27258: mer 14 août 11:14:36 ​​2019
  écriture: io = 1024,0 Mo, bw = 120443 Ko / s, iops = 30110, runt = 8706 msec
  lamelle (usec): min = 3, max = 70, moy = 4,31, stdev = 1,56
  clat (usec): min = 0, max = 8967, moy = 28,13, stdev = 55,68
   lat (usec): min = 22, max = 8976, moy = 32,53, stdev = 55,72
 ...
  bw (Ko / s): min = 118480, max = 122880, par = 100,00%, moy = 120467,29, stdev = 1525,68
 ...

 Exécuter le groupe d'état 0 (tous les travaux):
  ÉCRITURE: io = 1024,0 Mo, aggrb = 120442 Ko / s, minb = 120442 Ko / s, maxb = 120442 Ko / s, menthe = 8706 ms, maxt = 8706 ms

 Statistiques du disque (lecture / écriture):
 ...
  sda: ios = 0/262147, fusion = 0/1, ticks = 0/6576, in_queue = 6568, util = 74,32% 
 

Vous pouvez voir que l'indicateur de lamelle apparaît, lat est approximativement égal à la somme de lamelle + clat (valeur moyenne moyenne); et après le passage à io asynchrone, le débit a été considérablement amélioré, environ 120M

Six, résumé

● fio doit être utilisé comme outil de référence pour les disques. Lorsque vous obtenez une machine (physique ou cloud), vous devez effectuer un test de référence sur les disques de la machine dès que possible. ● Tous les tests de cet article contournent le cache. Dans les applications réelles, l'impact du cache doit être pris en compte.

Ce qui précède est l'écriture séquentielle et aléatoire du disque Linux présentée par Xiaobian à tout le monde. J'espère que cela sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message. Xiaobian vous répondra à temps. Merci beaucoup pour votre soutien au site!
Si vous pensez que cet article vous est utile, veuillez le réimprimer, veuillez en indiquer la source, merci!

0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 ". ., 4096) = 4096 27046 10: 54: 28.196573 écriture (3, "\ 0 \ 0 \ 23 \ 0 \ 0 \ 0 \ 0 \ 0 \ 300 \ 16 \ 0 \ 0 \ 0 \ 0 \ 0 \ 26 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 320 \ 17 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 4096) = 4096 ...

En raison des lectures séquentielles, il n’est pas nécessaire de localiser à plusieurs reprises le décalage du fichier, vous pouvez donc vous concentrer sur les opérations d’écriture

Cinquièmement, indicateur de lamelle

D'après le test ci-dessus, nous n'avons pas trouvé de lamelle dans le rapport de test de fio. En effet, les opérations ci-dessus sont synchrones. Pour les E / S synchrones, en raison de la soumission et de l'achèvement des E / S. Est une action, donc la latte est en fait le temps pour que les E / S se terminent

Écriture séquentielle asynchrone, ajoutez la commande d'écriture séquentielle synchrone -ioengine = libaio:


 root @ wilson-ubuntu: ~ # fio -name = write -rw = write -ioengine = libaio -direct = 1 -bs = 4k -size = 1G -numjobs = 1 -group_reporting -filename = / tmp / test.db
 écriture: (g = 0): rw = écriture, bs = 4K-4K / 4K-4K / 4K-4K, ioengine = libaio, iodepth = 1
 fio-2.2.10
 Démarrage d'un processus
 Tâches: 1 (f = 1): [W (1)] [100,0% terminé] [0 Ko / 119,3 Mo / 0 Ko / s] [0 / 30,6 Ko / 0 iops] [eta 00 min: 00 s]
 écrire: (groupid = 0, jobs = 1): err = 0: pid = 27258: mer 14 août 11:14:36 ​​2019
  écriture: io = 1024,0 Mo, bw = 120443 Ko / s, iops = 30110, runt = 8706 msec
  lamelle (usec): min = 3, max = 70, moy = 4,31, stdev = 1,56
  clat (usec): min = 0, max = 8967, moy = 28,13, stdev = 55,68
   lat (usec): min = 22, max = 8976, moy = 32,53, stdev = 55,72
 ...
  bw (Ko / s): min = 118480, max = 122880, par = 100,00%, moy = 120467,29, stdev = 1525,68
 ...

 Exécuter le groupe d'état 0 (tous les travaux):
  ÉCRITURE: io = 1024,0 Mo, aggrb = 120442 Ko / s, minb = 120442 Ko / s, maxb = 120442 Ko / s, menthe = 8706 ms, maxt = 8706 ms

 Statistiques du disque (lecture / écriture):
 ...
  sda: ios = 0/262147, fusion = 0/1, ticks = 0/6576, in_queue = 6568, util = 74,32% 
 

Vous pouvez voir que l'indicateur de lamelle apparaît, lat est approximativement égal à la somme de lamelle + clat (valeur moyenne moyenne); et après le passage à io asynchrone, le débit a été considérablement amélioré, environ 120M

Six, résumé

● fio doit être utilisé comme outil de référence pour les disques. Lorsque vous obtenez une machine (physique ou cloud), vous devez effectuer un test de référence sur les disques de la machine dès que possible. ● Tous les tests de cet article contournent le cache. Dans les applications réelles, l'impact du cache doit être pris en compte.

Ce qui précède est l'écriture séquentielle et aléatoire du disque Linux présentée par Xiaobian à tout le monde. J'espère que cela sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message. Xiaobian vous répondra à temps. Merci beaucoup pour votre soutien au site!
Si vous pensez que cet article vous est utile, veuillez le réimprimer, veuillez en indiquer la source, merci!

www.xd1998.com@2001-2030Partage De Technologie
Composants        Version     
OS Ubuntu 16.04.4 LTS
fio 2.2.10