Par Ddmdllt, le 13/07/2008 à 17:19.
Qu’est ce que la technologie ReadyBoost?
La technologie ReadyBoost est une technologie développée par Microsoft pour Windows Vista. Elle consiste à utiliser une clé USB en tant que sorte de mémoire cache pour stocker des fichiers couramment utilisés dans le but d’y accéder ensuite plus rapidement.
Le principe clé mis en avant: les temps d’accès différents
Le principe clé couramment mis en avant pour justifier le gain de performance est le fait que les clés USB ont des temps d’accès souvent bien meilleurs que les disques durs. En effet, contrairement à un disque dur, une clé USB n’est pas composés de plateaux et de têtes de lecture. Le processus physique de déplacement des têtes est la raison des temps d’accès élevés des disques durs: lorsqu’on accède à de l’information de manière non séquentielle, il faut à chaque fois positionner les têtes de lecture. Les clés USB ne font pas intervenir un tel processus physique, le temps d’accès est du pour l’essentiel à la réactivité de l’électronique de la clé, donc il est plutôt bon.
C’est ce type de discussion sur les temps d’accès que l’on peut souvent entendre pour justifier le ReadyBoost…
Qu’est ce que le SwapBoost pour Linux?
Le procédé appelé par un certain nombre de linuxiens comme le SwapBoost (voire parfois comme le “ReadyBoost pour Linux”) est en fait quelque chose qui n’a rien à voire avec le ReadyBoost (il faut clairement le dire), même si au final, le but de gain de performances dans des conditions similaires est souvent atteint (j’y reviendrais).
Il s’agit en fait tout simplement d’utiliser une clé USB en tant que mémoire swap plutôt que d’utiliser le disque dur. On peut ainsi rendre une configuration plus réactive (cf suite).
Deuxième argument clé pour du ReadyBoost / SwapBoost: des accès concurrents
C’est là un argument que je n’entends ou ne lis pas souvent pour le moins, mais qui me parait néanmoins plus qu’essentiel: lorsqu’on lit sur une clé USB et que on l’utilise (pendant un laps de temps) à 100% de ses performances, le disque dur est “libre pour autre chose”. Le système aura donc tendance (quand c’est justifié) à effectuer 2 opérations de lecture (ou une opération de lecture et une d’écriture, etc.) “en même temps”.
Pour mieux comprendre l’importance de cet argument, il convient de voir plus en détail ce qui se passe souvent lorsqu’une machine “ramme”, cela peut par exemple être le cas à l’ouverture d’un programme lourd, par exemple: très souvent dans ce cas il y a un besoin fort en lecture/écriture sur le système de fichier: cela se traduit par une certaine utilisation du disque dur… Mais en plus de ça, typiquement une configuration qui marche au ralentit est souvent une configuration qui n’a pas assez de mémoire. Cela veut dire que le système va chercher à “créer virtuellement de la mémoire en plus”, dit plus rigoureusement il utilise le swap sur disque pour stocker sur un disque (relativement lent) ce qui “devrait” être stocké en RAM (bien plus rapide). Avoir besoin du swap est donc déjà pas si bon… Mais si en plus il y a beaucoup d’autres accès au même disque en même temps, cela ne va plus très bien: une demande “doublée” sur le disque, de nombreux déplacements des têtes supplémentaires. Bref il devient logique que le système marche au ralentit.
Que ce soit en utilisant ReadyBoost ou SwapBoost, on permet donc (d’une façon différente) de faire des accès concurrents sur deux disques différents, ce qui permet de gagner du temps (on peut aussi en gagner en ayant deux disques durs et en “swappant” sur celui le moins utilisé pour les opérations habituelles sur le système de fichier, ou bien encore en utilisant du RAID, etc…).
C’est donc un réel avantage en plus, complémentaire à celui des temps d’accès réduits sur les clés USB.
Une approche typiquement différente mais des résultats similaires: des raisons?
Comme indiqué plus tôt les deux approches (ReadyBoost et SwapBoost) sont tout à fait différentes. Dans un cas (ReadyBoost) il s’agit de mettre en cache des fichiers sur clé USB, dans l’autre cas (SwapBoost) il s’agit de stocker le swap sur la clé USB.
Dans le cas typique de ralentissement évoqué plus tôt, avec la technologie dite SwapBoost, le principe des accès simultanés marche à la condition que des accès disque au système de fichiers soient nécessaires à ce moment (plus que très probable…). La réduction des temps d’accès due à la technologie Flash de la clé s’appliquera sur les accès au swap (donc à priori il y a des chances pour que ce soit assez utile).
Dans ce même cas avec la technologie ReadyBoost, si la selection des fichiers mis en cache a bien marché (i.e. si le système a bien fait son job), il y a des chances pour qu’il y ait des accès concurrents et aussi un bénéfice du au temps d’accès réduits de la clé.
Bien que les technologies soient fondamentalement différentes, elles tendent donc à déboucher sur le même effet en pratique: un gain de performance.
Quelques détails supplémentaires sur ReadyBoost
Pour que cette technologie soit utilisable, il faut qu’un certain nombre de critères soient remplis concernant la clé, notamment de performances concernant cette clé.
Le système utilise du cryptage pour protéger la confidentialité en cas de vol de la clé.
Il est couramment indiqué que les gains de performances réels ne se produisent que pour des configurations avec “peu de mémoire”, afin de rendre la situation “potable”. Cela serait donc des situations où l’on gagne peut-être beaucoup à éviter Windows Vista…
Quelques détails supplémentaires sur SwapBoost
En fait comme indiqué plus tôt SwapBoost est un nom couramment utilisé et ne décrit pas entièrement comment les choses se passent… (Mais par pitié, évitez d’utiliser le nom ReadyBoost pour Linux!)
Tout dépend donc de comment on s’y prend, et j’espère avoir prochainement l’occasion d’en préciser plus à ce sujet…
Dans la série… (UPDATE)