Auteur Sujet: Performance des SSD - Disques en usage réel  (Lu 11772 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 176
    • Twitter LaFibre.info
Performance des SSD - Disques en usage réel
« le: 23 juin 2017 à 09:27:56 »
J'entends souvent dire qu'un disque SATA 7200tr/min sait réaliser des transfert a plusieurs centaines de Mo/s. Vous allez voir que dans la vraie vie sur un serveur, c'est 20 Mo max.

Oui, un disque traditionnel sait monter a des très haut débit dans un bench, avec une lecture séquentielle, mais pour la lecture de nombreux fichiers sur un serveur, on est loin du compte.

Cette nuit, une personne a cloné le miroir Ubuntu.

J'ai deux disques dur sur le miroir Ubuntu:
- sda : Un disque dur SATA 3,5 pouces 7200tr/min de 500Go type serveur, qui héberge 293 Go d'archive (les moins consultées) + le système
- sdb : Un SSD grand public de 1 To qui héberge 829 Go d'archive (les plus consultées)

L'objectif était de mettre tous le miroir sur le SSD, mais il dépasse maintenant 1To.

Le disque SATA a été utilisé plus d'une heure à 100% de sa capacité lors du clonage du miroir, ce qui permet de voir les débit qu'il est capable de délivrer :



On ne dépasse pas 20 Mo sur un disque dur SATA sur ce type d'utilisation ! (le SSD monte à 70 Mo/s mais il n'a pas été utilisé au maximum, cf courbe précédente)


L’utilisation du disque dur classique, comme du SSD entraîne un échauffement du disque : (ils sont positionnées au niveau de l’entrée d'air du serveur, donc ce ne peut pas etre le CPU qui les chauffe)


Le fait d'attendre les entrée / sortie du disque SATA provoque une explosion des i/o wait et du load average :


Comme cela se fait probablement avec une seulle connexion TCP, coté Apache, on ne vois rien sur les accés et les slots utilisés :


Cela se voir sur le volume utilisé par Apache et la carte réseau : On ne dépasse pas 1 Gb/s de trafic mais comme ces fichiers ne sont pas en cache ram, cela consomme beaucoup plus de ressources que les pic à 4 Gb/s qui concernent des données en cache.


vivien

  • Administrateur
  • *
  • Messages: 47 176
    • Twitter LaFibre.info
Performance des SSD - Disques
« Réponse #1 le: 07 janvier 2018 à 21:58:55 »
Il y a un mois, j'avais l'archive Ubuntu qui était pour grande partie sur un SSD de 1 to et sur un disque dur classique de 500 Go.

Depuis trois semaines, j'ai maintenant tout sur SSD (un RAID 0 hardware Dell PERC H330 de deux SSD Intel de 960 Go chacun, connecté en SATA et avec des puces MLC)

J'ai donc ouvert le serveurs aux connexions rsync comme le font presque tous les serveurs par défaut pour un pays et je vois que c'était attendu car sans même communiquer sur cette nouvelle fonctionnalité, j'ai eu plusieurs synchronisations.

Problème : je suis déçu par les performances des SSD, vous allez comprendre dans les stats : je sature un RAID 0 de deux SSD avec un débit en lecture de 100 Mo/s (800 Mb/s). Pourquoi ?

Rsync: Quantités de données échanges via Rsync, par période de 5 minutes, en Go :

On est a environ 19 Go/5minutes soit environ 500 Mb/s.

Rsync: Nombre de fichiers échangés par période de 5 minute :

On est a environ 10k fichiers/5minutes, soit 33 fichiers par seconde environ (pic de 65k fichiers/5minutes, soit 220 fichiers par seconde

Regardez l'impact sur l'utilisation disque :

Pourcentage d'utilisation des disques: (c'est un RAID 0 hardware constitué de deux SSD Intel 960Go MLC en SATA)

"sda" correspond au RAID 0 hardware de deux SSD Intel

Les caractéristiques de la carte RAID Dell PERC H330 dans le lscpi -v :

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3008 [Fury] (rev 02)
   DeviceName: Integrated RAID
   Subsystem: Dell PERC H330 Adapter
   Flags: bus master, fast devsel, latency 0, IRQ 18
   I/O ports at 3000 [size=256]
   Memory at 95c00000 (64-bit, non-prefetchable) [size=64K]
   Memory at 95b00000 (64-bit, non-prefetchable) [size=1M]
   Expansion ROM at <ignored> [disabled]
   Capabilities: [50] Power Management version 3
   Capabilities: [68] Express Endpoint, MSI 00
   Capabilities: [d0] Vital Product Data
   Capabilities: [a8] MSI: Enable- Count=1/1 Maskable+ 64bit+
   Capabilities: [c0] MSI-X: Enable+ Count=97 Masked-
   Capabilities: [100] Advanced Error Reporting
   Capabilities: [1e0] #19
   Capabilities: [1c0] Power Budgeting <?>
   Capabilities: [148] Alternative Routing-ID Interpretation (ARI)
   Kernel driver in use: megaraid_sas
   Kernel modules: megaraid_sas


Débit en Mo/s lu / écrit sur les disques: (Ne correspond pas au trafic réseau, car la RAM cache les données les plus lues)

On est sur un trafic de 650 à 800 Mb/s, soit 150 à 300 Mb/s de plus que le débit RSYNC => C'est lié au fait que le transfert RSYNC doit vider du cache disque des fichiers fortement demandés.

Nombre de IOPS sur les disques (opérations d'entrée-sortie par seconde) :
 

Latence accès disque (enfin le RAID 0 de SSD) :


Avec un disque saturé à 100% en E/S, le Load average explose et le CPU attend les E/S (iowait) :
 

Bien sur il n'y a pas que RSYNC qui charge le serveur, il y a les requêtes http de mise à jour de milliers d'ordinateurs, mais c'est toujours les mêmes fichiers qui sont chargés et le contenu est probablement en cache RAM (il y a 32 Go de RAM)

Débit des connexions Apache (mises à jour via http/https) en Mo/s :   Nombre de fichiers téléchargés par seconde :
   

Trafic réseau en Mb/s sur la carte réseau : (comprend donc les requêtes http/https et rsync)

Thornhill

  • Abonné SFR fibre FttH
  • *
  • Messages: 3 976
  • Saint-Médard-en-Jalles (33)
Performance des SSD - Disques
« Réponse #2 le: 07 janvier 2018 à 22:53:05 »

Avec un disque saturé à 100% en E/S, le Load average explose et le CPU attend les E/S (iowait) :

Ce n'est pas le CPU qui attend en IOWait mais les process/threads.
Un CPU en iowait veut simplement dire qu'il est idle (rien d'autre à traiter), avec au moins process/threads en attente d'IO.

%iowait
    Show the percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.


Aussi, tu indiques que le logical disk est saturé, ce n'est pas certain : il suffit qu'il ait en moyenne toujours une I/O en cours de traitement pour être comptabilisé à 100% Busy par l'OS, mais avec le Command Queuing il peut accepter plusieurs I/O simultanèment donc peut-être a-t-il de la réserve en pratique.

As-tu fais un bench avec un outil comme fio ou IOmeter pour voir ce que peut réellement encaisser ton système IO ?



vivien

  • Administrateur
  • *
  • Messages: 47 176
    • Twitter LaFibre.info
Performance des SSD - Disques
« Réponse #3 le: 08 janvier 2018 à 07:00:04 »
Non, je n'ai pas fait de bench, mais j'ai été un peu horrifié par le load average :



Donc malgré un load average de 30,la machine n'aurais pas été à la peine ?

Les stats loadtime (temps d'attente en milliseconde pour charger les stats munin) est resté très faible (à 0) :

vivien

  • Administrateur
  • *
  • Messages: 47 176
    • Twitter LaFibre.info
Performance des SSD - Disques en usage réel
« Réponse #4 le: 11 août 2018 à 13:36:42 »
Il faudrait réaliser quel test avec fio ?

Voici un autre cas, arrivé hier à 11h00 et là on voit que cela à impacté le temps de chargement des autres fichiers.

Trafic réseau en Mb/s ou Gb/s généré par les mises à jour (via http/htps/rsync) sur la carte Intel X710 :


Débit des connexions Apache (mises à jour via http/https) en Mo/s : On voit que la charge a cette vois ci été réalisée par Apache.


Temps d'attente (en milliseconde) pour charger un fichier Apache local : On note une belle dégradation avec un temps moyen d'attente de100 millisecondes pendant que les E/S disques sont saturées.


Pourcentage d'utilisation des disques: (c'est un RAID 0 hardware constitué de deux SSD Intel 960Go MLC en SATA) On est à 100%


Débit en Mo/s lu / écrit sur les disques: (Ne correspond pas au trafic réseau, car la RAM cache les données les plus lues)


Nombre de IOPS (opérations d'entrée-sortie par seconde) sur la carte RAID Dell PERC H330 :


Latence (IO Wait) sur la carte RAID Dell PERC H330 :


Load average (moyenne de la charge système) :


Usage du processeur Xeon E3-1240 v6 (1 cœur=100% => 4 cœurs hyper-threading, donne un maximum de 800%) :

Harvester

  • Abonné Free fibre
  • *
  • Messages: 344
  • Freebox Révolution - Limours (91)
    • Site perso
Performance des SSD - Disques en usage réel
« Réponse #5 le: 11 août 2018 à 14:16:50 »
Changer le scheduler pour BFQ n'est pas envisageable ? D'autant qu'il est désormais présent officiellement dans le noyau :)

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 676
  • La Madeleine (59)
Performance des SSD - Disques en usage réel
« Réponse #6 le: 11 août 2018 à 16:10:21 »
Il faudrait réaliser quel test avec fio ?

Par exemple (sur un Crucial_CT275MX300SSD1)
Citer
87% [jack:/tmp]fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=2G --readwrite=randrw --rwmixread=75 --numjobs=10
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
...
fio-3.6
Starting 10 processes

...
test: (groupid=0, jobs=1): err= 0: pid=12854: Sat Aug 11 16:07:01 2018
   read: IOPS=4733, BW=18.5MiB/s (19.4MB/s)(1536MiB/83094msec)
   bw (  KiB/s): min=11568, max=22240, per=10.02%, avg=18919.69, stdev=1605.23, samples=166
   iops        : min= 2892, max= 5560, avg=4729.88, stdev=401.29, samples=166
  write: IOPS=1576, BW=6305KiB/s (6457kB/s)(512MiB/83094msec)
   bw (  KiB/s): min= 3696, max= 7296, per=9.99%, avg=6300.14, stdev=563.09, samples=166
   iops        : min=  924, max= 1824, avg=1574.99, stdev=140.76, samples=166
  cpu          : usr=0.64%, sys=4.79%, ctx=614219, majf=0, minf=8
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
     issued rwts: total=393302,130986,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=64

Run status group 0 (all jobs):
   READ: bw=184MiB/s (193MB/s), 18.4MiB/s-18.6MiB/s (19.3MB/s-19.5MB/s), io=14.0GiB (16.1GB), run=82570-83280msec
  WRITE: bw=61.6MiB/s (64.6MB/s), 6293KiB/s-6357KiB/s (6444kB/s-6510kB/s), io=5127MiB (5376MB), run=82570-83280msec


Disk stats (read/write):
    dm-0: ios=3924303/1312639, merge=0/0, ticks=3300496/585920, in_queue=3890160, util=96.47%, aggrios=3925265/1312898, aggrmerge=5171/1910, aggrticks=3114496/580884, aggrin_queue=2347912, aggrutil=96.07%
  sdc: ios=3925265/1312898, merge=5171/1910, ticks=3114496/580884, in_queue=2347912, util=96.07%


kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Performance des SSD - Disques en usage réel
« Réponse #7 le: 11 août 2018 à 18:20:28 »
J'entends souvent dire qu'un disque SATA 7200tr/min sait réaliser des transfert a plusieurs centaines de Mo/s. Vous allez voir que dans la vraie vie sur un serveur, c'est 20 Mo max.

Dans "la vraie vie sur un serveur" un disque SATA est dans un groupe RAID. A partir de la tout ce qui suit est purement académique... ;)

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 676
  • La Madeleine (59)
Performance des SSD - Disques en usage réel
« Réponse #8 le: 11 août 2018 à 18:30:17 »
Dans "la vraie vie sur un serveur" un disque SATA est dans un groupe RAID. A partir de la tout ce qui suit est purement académique... ;)

Toi, faire du raid ?
Il est temps de ne plus faire de raid !

vivien

  • Administrateur
  • *
  • Messages: 47 176
    • Twitter LaFibre.info
Performance des SSD - Disques en usage réel
« Réponse #9 le: 12 août 2018 à 17:10:58 »
Je me suis amusé à tester les performances de mes SSD via l'outil Gnome Disque (installé avec les distributions Debian, Ubuntu, Linux Mint, Trisquel, Fedora, Red Hat Enterprise Linux, CentOS et autres distributions Gnome).

Si vous avez un PC sous Windows, vous pouvez faire le test via une clé de boot USB Linux.

J'ai rajouté un "0" au nombre d'échantillons proposé par défaut : 1000 échantillons pour le test de débit en lecture et 10 000 pour le temps d'accès.


Avec un vieux SSD Kingston de 60 Go : (test réalisé avec un PC Core i3-4150 @3.50GHz sous Ubuntu 18.04 avec un kernel 4.15)

On note qu'il y a régulièrement des tests avec un nettement en dessous e de la moyenne.
Les performances seraient un peu meilleures au début du disque ?


Avec un Samsung 850 EVO 250 Go qui a déjà été bien utilisé (11 mois sous tension, 2 To écrit) : (test réalisé avec un PC Core i7-2600 @3.40GHz sous Ubuntu 18.04 avec un kernel 4.15)

tout est parfait


Avec un SSD SanDisk Ultra II de 480 Go acheté i y a presque deux ans : (test réalisé avec un PC Core i3-4150 @3.50GHz sous Ubuntu 18.04 avec un kernel 4.15)

Les performances seraient un peu meilleures à la fin du disque ?


Avec le SSD Sk hynix SC311 livré avec mon PC portable Dell acheté en février 2018 : (test réalisé avec un PC Core i5-8250U @1.60GHz sous Ubuntu 18.04 avec un kernel 4.15)

alain_p

  • Abonné Free fibre
  • *
  • Messages: 16 245
  • Delta S 10G-EPON sur Les Ulis (91)
Performance des SSD - Disques en usage réel
« Réponse #10 le: 13 août 2018 à 08:30:41 »
Dans "la vraie vie sur un serveur" un disque SATA est dans un groupe RAID. A partir de la tout ce qui suit est purement académique... ;)

Pas avec les systèmes de stockage distribués, type Ceph, où les disques sont utilisés individuellement (passthrough), et pas dans un volume Raid. Et cela devient de plus en plus courant. A noter que le dernier contrôleur Raid de Dell, le Perc H740p, ne supporte pas encore ce mode.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Performance des SSD - Disques en usage réel
« Réponse #11 le: 15 août 2018 à 13:37:26 »
Ceph ou RAID ca revient au meme. Le point est qu'on utilise rarement un disque seul.