Depuis macOS High Sierra, Apple intègre un outil un peu étonnant : DMC (Disk Mount Conditioner). Cet outil permet de ralentir un périphérique de stockage, pour simuler quelque chose de plus lent. L’intérêt ? Voir comment se comporte une application avec un disque dur 5 400 tpm (par exemple).
Comme Apple vend des Mac avec des SSD capables de dépasser 3 Go/s d’un côté et des iMac avec un disque dur digne d’un PC bas de gamme à 300 € de l’autre, tester le comportement d’un logiciel sur un système plus lent a de l’intérêt.
DMC se lance en ligne de commande et propose quelques presets : disque dur défectueux, disque dur 5 400 tpm, SSD un peu lent, etc. On peut obtenir la liste avec la commande dmc list
. Pour savoir comment le programme limite, il suffit de taper dmc show x
(ou x
est le numéro d’un des choix). Par exemple pour le HDD 5 400 tpm.
Profile: 5400 HDD
Type: HDD
Access time: 26111 us
Read throughput: 100 MB/s
Write throughput: 100 MB/s
I/O Queue Depth: 32
Max Read Bytes: 33554432
Max Write Bytes: 33554432
Max Read Segments: 256
Max Write Segments: 256
La page man
du programme explique comment créer ses propres paramètres pour tester un cas précis.
Pour lancer DMC, il suffit de taper la ligne suivante. Le /
indique le disque de démarrage (on peut aussi l’activer sur un disque externe), le x
un des choix de la liste. Il est possible de garder le tout permanent en ajoutant -boot
(je déconseille, sauf pour faire un blague ou se faire changer un Mac qui est devenu subitement très lent).
sudo dmc start / x
Directement, le système va être ralentit. Alors, le logiciel indique qu’il bloque à (ici) 100 Mo/s, mais ce n’est pas réellement le cas, en tout cas dans mes tests avec Blackmagic Disk Speed Test. Mais sur mon MacBook Pro, je passe de ~2 Go/s à moins de 300 Mo/s (ce qui reste honnête). A l’usage, on sent évidemment bien le bridga artificiel, avec des logiciels qui se lancent lentement, un système peu réactif, etc. Un Mac avec un disque dur donc. Pour couper DMC, c’est assez simple : il faut taper la commande suivante ou redémarrer (sauf si l’argument -boot
a été utilisé).
sudo dmc stop /
Je découvre et trouve ça très intéressant !
Assez similaire à ce qu’on peut faire sur un appareil iOS pour brider un réseau Wifi en réseau 4G/3G/etc, simuler des pertes de paquets, un DNS avec grosse latence, etc (dans le cadre de tests d’applications mobile). Quand j’ai présenté ça à mes collègues qui faisaient les cons pendant des heures dans les ascenseurs du bâtiment, ce fût une « révolution » ^^’
Y a la même chose pour macOS, en fait (https://www.journaldulapin.com/2014/04/03/network-link-conditioner-simuler-un-reseau-degrade-pour-tester/)
Super, pile poil la commande que je cherchais pour ralentir un disque.
Merci.