MacBook Air A1370 Disque virtuel : Upgrade de la RAM Via le SSD

cronos

Membre confirmé
27 Juillet 2011
35
1
39
Bonjour amis bidouilleurs de Mac,

J'ai besoin de vous solliciter car il me vient une idée étrange.
Une cliente m'appelle car son MacBook Air est lent. Je regarde, il a un SSD trencend de 240Go qui n'est utilisé qu'à hauteur de 60Go et là je remarque le soucis... 2Go de RAM sous El Capitan !

Les composants sur ce MacBook Air sont soudés et j'ai un poste de soudure à air chaud, mais ça a l'air compliqué : changement des puces de RAM + Résistance + Upgrade du Bios.

Et soudain, une idée lumineuse de feignasse : Et si on allouait une partie du SSD pour augmenter virtuellement la RAM... mais je sais comment le faire sur un Windows, mais pas sur Mac OS.

Est-ce possible ?

Certes la mémoire sur le SSD est moins rapide, mais c'est aussi moins risqué que l'option de la chirurgie d'upgrade de RAM.
 
Bonjour cronos

Dès que la capacité de la RAM se trouve excédée --> il y a génération automatique de swap au disque :

- càd. création de fichiers d'échanges qui étendent la RAM au disque > à la localisation dans l'OS : /private/var/vm. Dans ce sous-dossier vm (virtual memory) > à côté d'un fichier sleepimage qui archive le contexte de la RAM (au cas où il faudrait reconstituer ce contexte en sortie de sommeil profond du Mac) > le swap se manifeste sous forme de fichiers swapfile0 > swapfile1 > swapfile2 (et etc.) de 1 Go chacun. Ce sont les fichiers d'échange qui étendent la RAM au disque. Ils sont automatiquement purgés après redémarrage ou extinction => rallumage.​

En résumé : tu n'as pas besoin d'effectuer ton idée par une action spéciale --> la génération de fichiers de type swapfile en cas de swap la concrétise automatiquement. En lançant le Moniteur d'activité > onglet : "Mémoire" > tu as une indication de la taille globale des fichiers d'échange à un moment donné.
 
Bonjour cronos

Dès que la capacité de la RAM se trouve excédée --> il y a génération automatique de swap au disque :

- càd. création de fichiers d'échanges qui étendent la RAM au disque > à la localisation dans l'OS : /private/var/vm. Dans ce sous-dossier vm (virtual memory) > à côté d'un fichier sleepimage qui archive le contexte de la RAM (au cas où il faudrait reconstituer ce contexte en sortie de sommeil profond du Mac) > le swap se manifeste sous forme de fichiers swapfile0 > swapfile1 > swapfile2 (et etc.) de 1 Go chacun. Ce sont les fichiers d'échange qui étendent la RAM au disque. Ils sont automatiquement purgés après redémarrage ou extinction => rallumage.​

En résumé : tu n'as pas besoin d'effectuer ton idée par une action spéciale --> la génération de fichiers de type swapfile en cas de swap la concrétise automatiquement. En lançant le Moniteur d'activité > onglet : "Mémoire" > tu as une indication de la taille globale des fichiers d'échange à un moment donné.
Bonjour Macomaniac et merci pour cette réponse technique. C'est très intéressant et ça explique pourquoi le macbook air est capable de tourner sur El Capitan...
Certaines actions doivent néanmoins impérativement passer par la RAM et non par le SWAP, car il est impossible de faire une copie d'un fichier sur le SSD sur une Clef USB (manque de RAM) qui se traduit par une copie extrêmement longue qui n'aboutie à... Rien !
 
D'après un article datant de... 2002, à l'époque il était possible de faire une partition manuellement qui servait de SWAP en plus du SWAP géré automatiquement par le système (depuis la première itération de MacOS X).

L'article détail avec précision comment le faire, mais je ne sais pas si le code à changé depuis lors. https://www.mac4ever.com/dossiers/74043_la-gestion-de-la-memoire-vive-sous-mac-os-x

PS : Si c'est possible, je crée une partition de 14Go, et on est tranquille. Par contre, il faudrait sans doute que j'oblige le système à se servir en priorité de ce SWAP plutôt que de la RAM. Bref, mission impossible :)
 
Le seul argument de l'article de Mac4Ever en faveur d'un volume dédié spécifiquement au swap --> serait que le swap automatique de l'OS se trouverait dispersé un peu partout sur le disque => ce qui ralentirait les temps d'accès au swap.

- or cette assertion est fausse : puisque le swap est strictement localisé dans l'OS au dossier : /private/var/vm et consiste en un alignement de fichiers de type swapfile indexés (0 1 2 3 etc.). Il n'y a donc pas ralentissement d'accès au swap issu d'une dispersion de ses fichiers sur le disque.​

----------

J'ai également du mal à capturer les enjeux de l'article de Askdifferent consistant à déplacer la localisation du swap : de /private/var/vm (correctement identifiée) => au volume d'un autre disque.

- le disque de démarrage de la personne dont tu t'occupes est un SSD (supposons un 2,5" - mis en remplacement d'un HDD d'usine). Les débits d'accès en lecture sont d'environ 500 Mo/s (si la connexion est SATA-3). Quel est l'intérêt de déplacer la localisation du swap à un disque dur (rotatif) dont les débits d'accès en lecture sont d'environ 100 Mo/s --> sinon ralentir les performances du swap ?​

- s'il s'agit de délocaliser le swap à un autre volume du même SSD créé ad hoc --> en quoi les fichiers de type swapfile alignés à la nouvelle localisation auront-ils un meilleur rendement que les mêmes à la localisation par défaut ? Le seul argument serait que le swap peut occuper beaucoup de place sur un disque (à coups de 1 Go par fichier swapfile). Mais si la délocalisation se fait du volume de démarrage du SSD à un autre volume créé sur le même SSD par rétrécissement du 1er --> je ne vois pas en quoi il y aurait gain de place puisque le volume de démarrage aurait été rétréci a priori pour créer le volume de swap

En résumé : la problématique de l'article de Mac4Ever me semble désuète (Janvier 2002 ! valable pour la toute 1ère mouture d'OS X : Cheetah 10.0 ou son successeur = Puma 10.1 ?). La problématique de l'article de Askdifferent m'échappe : on a affaire à une édition technique de fichier plist de l'OS en réponse à une demande absolument pas justifiée de la part de l'initiateur : "I would like to place the swap files in a different location. How can it be done?". Pourquoi diable a-t-il ce desideratum sans intérêt a priori ?
 
Dernière édition par un modérateur:
Note : s'il fallait admettre la problématique de déplacement du swap à un autre volume (dont la localisation serait /Volumes/Brol) --> alors il y a une astuce qui ne prend pas la tête -->

- tu supprimes le dossier /private/var/vm dans l'OS > tu crées un dossier vm dans /Volumes/Brol > et tu remplaces le dossier vm de l'OS par un lien symbolique au dossier /Volumes/Brol/vm. Par une commande :​
Bloc de code:
sudo ln -s /Volumes/Brol/vm /private/var/vm

  • attention ! l'activation du SIP dans El Capitan risque de bloquer ces manipulations. Le désactiver a priori par la commande :
Bloc de code:
csrutil disable

  • dans le terminal de l'OS de secours (uniquement).
----------

Sinon > il serait envisageable de monter le volume /Volumes/Brol --> à la localisation /private/var/vm (vm lui tenant donc lieu de point de montage). Par exemple > via une petite application maison se lançant en ouverture de session et consistant dans une commande de remontage de Brol à la localisation indiquée.

- c'est ce qui se passe avec les OS version apfs > où un volume auxiliaire intitulé VM (séparé du volume Macintosh HD de démarrage) > se trouve monté automatiquement at: /private/var/vm de ce volume au démarrage.​