Bonjour,
sur un VPS SSD1 sous Debian 10, j'ai :
# cat /sys/block/sda/queue/rotational
1
Ce qui indique que /dev/sda est vu comme un disque dur mécanique et non comme un SSD statique.
Comment remédier à cela ?
Merci.
Bonjour
Je pense que ce post donne l'explication:
https://unix.stackexchange.com/a/65602 https://unix.stackexchange.com/a/65602
Bonjour,
Je pense que ce post donne l'explication:
et bien non, car ce n'est pas ma question.
Je te remercie pour ta réponse et le lien qu'elle fournit,
car cela m'a permis de consolider le diagnostique :
# lsblk -d -o name,rota /dev/sda
NAME ROTA
sda 1
# smartctl -a /dev/sda
…
SMART support is: Unavailable - device lacks SMART capability.
# cat /sys/block/sda/queue/rotational
1
# cat /sys/class/block/sda/queue/rotational
1
# lshw -class disk
*-disk
description: SCSI Disk
produit: QEMU HARDDISK
fabriquant: QEMU
identifiant matériel: 0.0.0
information bus: scsi@2:0.0.0
nom logique: /dev/sda
version: 2.5+
taille: 20GiB (21GB)
fonctionnalités: 5400rpm partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=512
Donc toutes ces commandes confirment que :
Ce qui est vendu pour un stockage SDD est en fait un HDD à 5400rpm !
On est loin du produit acheté, j'aimerais bien avoir une explication d'un membre de l'équipe d'OVH
Merci.
Bonjour,
Vous avez juste vu que OVH fait de l'émulation matériel dur une VM et que cette émulation matériel dit que c'est un disque 5.4k RPM ce qui est faux car derrière l'hôte a du SSD.
Faite un bench avec fio et vous verrez que les performances ne peuvent techniquement pas être celle d'un SAS 5.4K RPM (d'ailleurs ça existe encore ?).
Cordialement, janus57
HDD à 5400rpm
Quelques mesures sur des serveurs physiques avec disques à plateaux
Tu peux comparer avec ton VPS.
un vieux Core2 duo E6550
root@k2:~# hdparm -Tt /dev/sda
/dev/sda: (Seagate Barracuda 7200 , 500 GB, 7000 heures)
Timing cached reads: 7140 MB in 2.00 seconds = 3577.72 MB/sec
Timing buffered disk reads: 298 MB in 3.02 seconds = 98.82 MB/sec
root@k2:~# hdparm -Tt /dev/sdb
/dev/sdb: (Seagate Barracuda 7200 , 500 GB, 69000 heures)
Timing cached reads: 6752 MB in 2.00 seconds = 3382.40 MB/sec
Timing buffered disk reads: 340 MB in 3.01 seconds = 112.96 MB/sec
--->>>
Un autre serveur, intel Atom N2800
/dev/sda: (HGST 2TB, 7200 rpm, 10000 heures)
Timing cached reads: 1764 MB in 2.00 seconds = 881.97 MB/sec
Timing buffered disk reads: 552 MB in 3.00 seconds = 183.95 MB/sec
Bonjour,
Pour info voici un test sur un VPS SSD1 :
[quote]
root@vps01:~# lshw -class disk
*-disk
description: SCSI Disk
produit: QEMU HARDDISK
fabriquant: QEMU
identifiant matériel: 0.0.0
information bus: scsi@2:0.0.0
nom logique: /dev/sda
version: 2.5+
taille: 40GiB (42GB)
fonctionnalités: 5400rpm partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=512
root@vps01:~# hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 16080 MB in 1.99 seconds = 8080.79 MB/sec
SG_IO: bad/missing sense data, sb: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Timing buffered disk reads: 526 MB in 3.00 seconds = 175.09 MB/sec
[/quote]
Bon a priori l'émulation matériel aime pas trop hdparm, voici donc deux petits tests avec fio en écriture random; le premier et sur le VPS SSD1 et le second sur un Kimsufi avec un disque mécanique 7.2K RPM
[quote]
###SSD
root@vps01:~# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_write.fio --bs=4k --iodepth=64 --size=1G --readwrite=randwrite
test: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.12
Starting 1 process
Jobs: 1 (f=1): [w(1)][100.0%][w=5900KiB/s][w=1475 IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=2996: Mon Aug 10 20:32:17 2020
write: IOPS=1489, BW=5956KiB/s (6099kB/s)(1024MiB/176052msec); 0 zone resets
bw ( KiB/s): min= 2744, max= 7672, per=98.89%, avg=5889.86, stdev=437.69, samples=352
iops : min= 686, max= 1918, avg=1472.36, stdev=109.46, samples=352
cpu : usr=1.64%, sys=6.94%, ctx=200407, majf=0, minf=7
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=0,262144,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):
WRITE: bw=5956KiB/s (6099kB/s), 5956KiB/s-5956KiB/s (6099kB/s-6099kB/s), io=1024MiB (1074MB), run=176052-176052msec
Disk stats (read/write):
sda: ios=13/263276, merge=0/23515, ticks=525/9555460, in_queue=9531116, util=99.48%
[/quote]
[quote]
###HDD
root@srv-test01:~# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_write.fio --bs=4k --iodepth=64 --size=1G --readwrite=randwrite
test: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.12
Starting 1 process
Jobs: 1 (f=1): [w(1)][99.8%][w=1584KiB/s][w=396 IOPS][eta 00m:03s]
test: (groupid=0, jobs=1): err= 0: pid=9866: Mon Aug 10 21:00:42 2020
write: IOPS=139, BW=559KiB/s (573kB/s)(1024MiB/1875446msec); 0 zone resets
bw ( KiB/s): min= 8, max= 2480, per=99.95%, avg=558.73, stdev=191.57, samples=3748
iops : min= 2, max= 620, avg=139.65, stdev=47.90, samples=3748
cpu : usr=0.32%, sys=1.37%, ctx=139793, 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=0,262144,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):
WRITE: bw=559KiB/s (573kB/s), 559KiB/s-559KiB/s (573kB/s-573kB/s), io=1024MiB (1074MB), run=1875446-1875446msec
Disk stats (read/write):
sda: ios=1038/270361, merge=291/140223, ticks=904848/110644680, in_queue=49128260, util=85.52%
[/quote]
Enfin on fini avec deux petits tests avec fio en lecture random; le premier et sur le VPS SSD1 et le second sur un Kimsufi avec un disque mécanique 7.2K RPM
[quote]
### SSD
root@vps01:~# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read.fio --bs=4k --iodepth=64 --size=1G --readwrite=randread
test: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.12
Starting 1 process
test: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [r(1)][100.0%][r=6012KiB/s][r=1503 IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=4560: Mon Aug 10 20:47:55 2020
read: IOPS=1496, BW=5986KiB/s (6129kB/s)(1024MiB/175184msec)
bw ( KiB/s): min= 4536, max= 7064, per=100.00%, avg=5984.80, stdev=171.63, samples=350
iops : min= 1134, max= 1766, avg=1496.17, stdev=42.90, samples=350
cpu : usr=1.40%, sys=4.96%, ctx=143089, majf=0, minf=70
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=262144,0,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=5986KiB/s (6129kB/s), 5986KiB/s-5986KiB/s (6129kB/s-6129kB/s), io=1024MiB (1074MB), run=175184-175184msec
Disk stats (read/write):
sda: ios=262126/442, merge=0/356, ticks=11182639/11697, in_queue=11136268, util=99.48%
[/quote]
[quote]
###HDD
root@srv-test01:~# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read.fio --bs=4k --iodepth=64 --size=1G --readwrite=randread
test: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.12
Starting 1 process
test: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [r(1)][99.9%][r=4444KiB/s][r=1111 IOPS][eta 00m:01s]
test: (groupid=0, jobs=1): err= 0: pid=11039: Mon Aug 10 21:15:02 2020
read: IOPS=309, BW=1239KiB/s (1269kB/s)(1024MiB/846223msec)
bw ( KiB/s): min= 376, max= 5144, per=99.91%, avg=1237.89, stdev=187.61, samples=1692
iops : min= 94, max= 1286, avg=309.46, stdev=46.90, samples=1692
cpu : usr=0.54%, sys=1.83%, ctx=134092, majf=0, minf=71
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=262144,0,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=1239KiB/s (1269kB/s), 1239KiB/s-1239KiB/s (1269kB/s-1269kB/s), io=1024MiB (1074MB), run=846223-846223msec
Disk stats (read/write):
sda: ios=260808/417, merge=1508/249, ticks=52286954/64322, in_queue=26465028, util=99.11%
[/quote]
Cordialement, janus57
Merci pour votre aide.
Apparemment, la sortie de :
# cat /sys/block/sda/queue/rotational
1
appliquée au disque virtuel d'une VM n'a pas vraiment de sens
et peut donner une indication contradictoire (disque mécanique virtuel émulé sur un support physique SSD)
Ma question était motivée par l'idée d'activer le TRIMming / discard pour une optimisation du SSD.
Dans un tel contexte,
je tiens cela pour inutile supposant que les mesures d'optimisation sont mises en œuvre par OVH à un niveau inférieur.
J'ai tout de même fait les tests de performances suggérés,
les résultats sont supérieurs à un HDD ordinaire,
mais tout de même très inférieurs à ceux d'un véritable SSD.
Je vous les livre comme retour en remerciement à votre intérêt pour ma question.
En écriture
# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_write.fio --bs=4k --iodepth=64 --size=1G --readwrite=randwrite
test: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.12
Starting 1 process
test: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [w(1)][100.0%][w=3971KiB/s][w=992 IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=23245: Tue Aug 11 11:20:18 2020
write: IOPS=958, BW=3833KiB/s (3925kB/s)(1024MiB/273556msec); 0 zone resets
bw ( KiB/s): min= 8, max= 5080, per=99.99%, avg=3832.59, stdev=578.19, samples=547
iops : min= 2, max= 1270, avg=958.14, stdev=144.54, samples=547
cpu : usr=0.94%, sys=4.74%, ctx=258311, 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=0,262144,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):
WRITE: bw=3833KiB/s (3925kB/s), 3833KiB/s-3833KiB/s (3925kB/s-3925kB/s), io=1024MiB (1074MB), run=273556-273556msec
Disk stats (read/write):
dm-0: ios=0/372679, merge=0/0, ticks=0/25226216, in_queue=25228252, util=100.00%, aggrios=0/271113, aggrmerge=0/102034, aggrticks=0/17392085, aggrin_queue=17342664, aggrutil=99.68%
sda: ios=0/271113, merge=0/102034, ticks=0/17392085, in_queue=17342664, util=99.68%
pour comparaison :
## SSD
WRITE: bw=109MiB/s (114MB/s), 109MiB/s-109MiB/s (114MB/s-114MB/s), io=1024MiB (1074MB), run=9378-9378msec
##VBox sur SSD
WRITE: bw=13.5MiB/s (14.1MB/s), 13.5MiB/s-13.5MiB/s (14.1MB/s-14.1MB/s), io=1024MiB (1074MB), run=75966-75966msec
##NoteBook HDD
WRITE: bw=831KiB/s (851kB/s), 831KiB/s-831KiB/s (851kB/s-851kB/s), io=1024MiB (1074MB), run=1262199-1262199msec
En lecture
# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read.fio --bs=4k --iodepth=64 --size=1G --readwrite=randread
test: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.12
Starting 1 process
test: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [r(1)][100.0%][r=4004KiB/s][r=1001 IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=24078: Tue Aug 11 12:19:00 2020
read: IOPS=999, BW=3999KiB/s (4095kB/s)(1024MiB/262216msec)
bw ( KiB/s): min= 3528, max= 4616, per=100.00%, avg=3998.52, stdev=75.03, samples=524
iops : min= 882, max= 1154, avg=999.62, stdev=18.75, samples=524
cpu : usr=1.00%, sys=3.43%, ctx=200804, majf=0, minf=71
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=262144,0,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=3999KiB/s (4095kB/s), 3999KiB/s-3999KiB/s (4095kB/s-4095kB/s), io=1024MiB (1074MB), run=262216-262216msec
Disk stats (read/write):
dm-0: ios=262034/31, merge=0/0, ticks=16752744/468, in_queue=16755512, util=100.00%, aggrios=262199/150, aggrmerge=0/113, aggrticks=16768503/2070, aggrin_queue=16685912, aggrutil=99.49%
sda: ios=262199/150, merge=0/113, ticks=16768503/2070, in_queue=16685912, util=99.49%
pour comparaison :
##SSD
READ: bw=232MiB/s (243MB/s), 232MiB/s-232MiB/s (243MB/s-243MB/s), io=1024MiB (1074MB), run=4415-4415msec
##VBox sur SSD
READ: bw=42.6MiB/s (44.6MB/s), 42.6MiB/s-42.6MiB/s (44.6MB/s-44.6MB/s), io=1024MiB (1074MB), run=24054-24054msec
##NoteBook HDD
READ: bw=973KiB/s (996kB/s), 973KiB/s-973KiB/s (996kB/s-996kB/s), io=1024MiB (1074MB), run=1077804-1077804msec
Bonjour,
mais tout de même très inférieurs à ceux d'un véritable SSD.
il faut garder en tête que les ressources du serveur sont mutualisé, donc 1 personne pour 1 SSD vs 20 personne pour 1 SSD effectivement cela joue sur les performances des dit SSD, surtout que de mémoire OVH limite le nombre d'iops pour éviter qu'un locataire mange toute les ressources du serveur.
Cordialement, janus57
Merci pour ce rappel. ;-))