Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/10/2014, à 23:43

lildadou

[WIP][Raid5] Contre-performance et grosse déception

Bonsoir à tous,
après avoir bataillé avec mes câbles pour obtenir un réseau local gigabit, j'ai été surpris de voir des transferts pas si exceptionnel. Après quelques recherches, le coupable s'avère être mon RAID. Je vous laisse apprécier ces quelques chiffres :

# more /proc/mdstat
md1 : active raid5 sda4[4] sdc4[3] sdb4[0]
      3900718848 blocks super 1.2 level 5, 128k chunk, algorithm 2 [3/3] [UUU]

# hdparm -t /dev/...
/dev/sda: Timing buffered disk reads: 354 MB in  3.01 seconds = 117.78 MB/sec
/dev/sdb: Timing buffered disk reads: 356 MB in  3.01 seconds = 118.35 MB/sec
/dev/sdc: Timing buffered disk reads: 360 MB in  3.01 seconds = 119.57 MB/sec
/dev/md1: Timing buffered disk reads: 254 MB in  3.00 seconds =  84.66 MB/sec

# dd if=/dev/urandom of=/dev/sdc3 (swap) conv=fdatasync bs=16k count=5k;
83886080 octets (84 MB) copiés, 1,18066 s, 71,1 MB/s

# dd if=/dev/urandom of=/tmp/write-test conv=fdatasync bs=16k count=5k
83886080 octets (84 MB) copiés, 2,03734 s, 41,2 MB/s

De ce que je me souviens, du point de vue performance un RAID5 c'est un RAID0 - 1 disque. Les performances individuelles des disques tournent aux alentours de 114Mo/s. En théorie, un RAID5 de 3 disques devrait donc avoir une perf de 240Mbits (non?). Au pire, 114Mo/s mais pas 81Mo/s!

Est ce que les possesseurs de Raid5/6 observent ce même type de contre-performance ou suis-je un cas isolé?

Edit: Correction du bench en écriture (urandom -> zero)

Dernière modification par lildadou (Le 06/10/2014, à 10:10)

Hors ligne

#2 Le 06/10/2014, à 09:34

tiramiseb

Re : [WIP][Raid5] Contre-performance et grosse déception

Salut,

Concernant les performances du RAID5 logiciel, ça dépend de plein de choses : comment tes disques sont branchés, la puissance du processeur, le pourcentage d'utilisation du processeur, etc.

En écriture, le RAID5 est plus lent qu'un disque seul, ça c'est clair (calcul de la parité, écriture sur 2 disques...).
En lecture, par contre, en effet tu devrais avoir de meilleures performances... mais il y a beaucoup de facteurs.

Tout ça pour dire que tes résultats ne m'étonnent pas tant que ça...

Hors ligne

#3 Le 06/10/2014, à 10:28

lildadou

Re : [WIP][Raid5] Contre-performance et grosse déception

@tiramiseb: Parler de cpu m'a rappelé que urandom était lent. J'ai corrigé mon bench mais le problème reste le même.

Je ne comprends pas tes arguments. J'ai 3 disques de 2To à 5400rpm, un Core2Duo@3GHz et 4Go de RAM ; le raid logiciel devrait être une formalité et heureusement qu'il l'est (CPU à 12% et j'ai de la RAM libre lorsque je bench en écriture). Je sais qu'un XOR est coûteux m'enfin faut pas exagérer non plus. L'écriture ne devrait pas être ralentie. Certes il y a écriture sur 2 disques mais je te rassure, elles se font en même temps et pas l'une après l'autre. La perte devrait être faible voire négligeable et non pas 40% de perte comme on peut l'observer.

La situation en lecture est tout simplement... WHAAA! avec 76% de perte par rapport à la situation théorique. Comment tu expliques ça? Il n'y a pas de calcul de parité, les 3 disques travaillent de concert et pourtant on n'arrive même pas à atteindre le débit d'un seul disque!

Je comprends tes arguments mais ils ne collent pas avec les mesures et ils n'expliquent pas la situation en lecture.

Hors ligne

#4 Le 01/06/2016, à 13:37

lildadou

Re : [WIP][Raid5] Contre-performance et grosse déception

Je déterre un peu le sujet. Entre temps, des améliorations ont été réalisées sur les RAID5/6 logiciel : http://lkml.iu.edu/hypermail/linux/kern … 04389.html

J'ai aussi changé le protocole de tests, j'utilise l'option direct de hdparm, j'arrête d'utiliser dd pour tester la grappe raid et je teste la partition de la grappe pour éviter les écarts du à la topologie d'un disque. Résultat : la vitesse en lecture buffer-less reste aux alentours de 110MB/s et celle de la grappe (3 disques en RAID5 pour rappelle) est de 140MB/s soit 64% des performances théoriques attendues ; c'est 2x mieux.

Au niveau de mes transferts de fichiers cela se ressent.

Hors ligne

#5 Le 01/06/2016, à 15:57

donut

Re : [WIP][Raid5] Contre-performance et grosse déception

Jette un oeil à zfs tongue


https://utux.fr (blog perso)

Hors ligne

#6 Le 01/06/2016, à 16:09

grigouille

Re : [WIP][Raid5] Contre-performance et grosse déception

RAID5 sur Ubuntu server 14.04 64bits sur ASROCK N3150-ITX, 4GB RAM
3 * SEAGATE HDD 3TO POUR NAS
Volume logique en ext4

$ sudo hdparm -tT /dev/vg0/partage

/dev/vg0/partage:
 Timing cached reads:   2708 MB in  2.00 seconds = 1353.89 MB/sec
 Timing buffered disk reads: 1010 MB in  3.00 seconds = 336.32 MB/sec

Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne

#7 Le 01/06/2016, à 17:37

lildadou

Re : [WIP][Raid5] Contre-performance et grosse déception

@grigouille: Merci pour ton retour. Ce serait idéal si tu pouvais ajouter le bench d'une partition qui participe à la grappe et le modèle de ton processeur.

Je ne pense pas que tes disque débitent beaucoup plus que les miens. Par conséquent cela veut dire que :
- soit j'ai foiré ma grappe (j'ai peut-être mal aligné les chunks?)
- soit le RAID5, c'est trop pour mon C2Duo

Hors ligne

#8 Le 01/06/2016, à 18:26

grigouille

Re : [WIP][Raid5] Contre-performance et grosse déception

Tes disques sont à 5400 rpm.
Les miens ont un taux de transfert en continu max de 180 MB/s
Chaque disque consomme 5W.

$ sudo vgdisplay vg0 -v
    Using volume group(s) on command line
    Finding volume group "vg0"
  --- Volume group ---
  VG Name               vg0
       
  --- Logical volume ---
  LV Path                /dev/vg0/partage
  LV Name                partage
  VG Name                vg0
  
  --- Physical volumes ---
  PV Name               /dev/md127     
  PV UUID               jrQbav-btjI-ii1B-XOY2-cZTw-0x9Y-caMdQX
  PV Status             allocatable
  Total PE / Free PE    1430729 / 750162
$ cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md127 : active raid5 sdd[1] sdb[2] sdc[0]
      5860270080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>

Le processeur est intégré à la carte mère.

$ sudo dmidecode -t processor | grep Version
	Version: Intel(R) Celeron(R) CPU N3150 @ 1.60GHz

http://www.asrock.com/mb/Intel/N3150-ITX/


Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne

#9 Le 16/08/2016, à 01:28

lildadou

Re : [WIP][Raid5] Contre-performance et grosse déception

Re à tous les participants,
j'ai reçu de nouveaux disques (3x HUA723020ALA641), c'est donc l'occasion de faire de nouveaux tests smile

Dans mes anciens bench, il y avait un risque de partitions mal alignées, un risque de test sur un conteneur chiffré et risque de défaillances matériels (j'ai un nombre read raw error assez important sur un des précédant disques).


Pour le test en écriture sans cache, j'utilise la commande :

dd bs=1M count=1k if=/dev/zero of=/dev/xxx oflag=dsync

Pour le test en écriture avec cache (flushé avant la fin) :

dd bs=1M count=1k if=/dev/zero of=/dev/xxx conv=fdatasync

Pour le test en lecture sans cache:

echo 3 > /proc/sys/vm/drop_caches;
dd bs=1M count=1k if=/dev/xxx of=/dev/null

Pour le test avec cache (le mien faissant 64Mo):

echo 3 > /proc/sys/vm/drop_caches;
dd bs=1M count=64 if=/dev/xxx of=/dev/null 2> /dev/null
dd bs=1M count=64 if=/dev/xxx of=/dev/null

Résultat:
Disque seul
Ecriture sans cache : 151MB/s
Ecriture avec cache : 146MB/s
Lecture sans cache : 153MB/s
Lecture avec cache : 149MB/s

3x disques en Linux RAID 5

md0 : active raid5 sde1[3] sdd1[1] sdc1[0]
      1949696 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

Ecriture sans cache : 264MB/s
Ecriture avec cache : 166MB/s
Lecture sans cache : 264MB/s
Lecture avec cache : 950MB/s
Consommation CPU du processus md0_raid durant l'écriture sans cache : 26,5%

3x disques en RAID5 matériel (RR2720SQL)

RocketRAID 272x_1x controller driver v1.5.18

Controller 1: RocketRAID 2720 SAS Controller
------------------------------------------------
1/1/1 Hitachi HUA723020ALA-YFGBPSPA, 2000313MB, Normal [RA][WC][NCQ]
1/2/1 Hitachi HUA723020ALA-YGG1BZKC, 2000313MB, Normal [RA][WC][NCQ]
1/3/1 Hitachi HUA723020ALA-YFGWPM3A, 2000313MB, Normal [RA][WC][NCQ]

Logical devices
------------------------------------------------
[DISK 6_0] Cassiope (RAID5), 4000627MB, Normal
    1/1/1 Hitachi HUA723020ALA
    1/2/1 Hitachi HUA723020ALA
    1/3/1 Hitachi HUA723020ALA

Ecriture sans cache : 50MB/s
Ecriture avec cache : 243MB/s
Lecture sans cache : 242MB/s
Lecture avec cache : 688MB/s (260MB/s si on lit plus de 88MB)
Il n'y pas de consommation de ressources (autre que dd) lors de l'écriture.

             | Direct Write | Write | Read | Cache-Read |
Single       |          151 |   146 |  153 |        149 |
softraid5 x3 |          264 |   166 |  264 |        950 |
softraid0 x3 |          335 |   280 |  388 |        966 |
hardraid5 x3 |           50 |   243 |  242 |        688 |

Edit: Ajout des données pour un raid matériel, mise en forme des données dans un tableau

Sources: J'ai défini mon protocole de test avec l'aide de https://wiki.archlinux.org/index.php/Be … ge_devices

Dernière modification par lildadou (Le 16/08/2016, à 12:43)

Hors ligne