Mac OS X ne crée pas de fichier d'échange

6

J'ai récemment commencé à rencontrer beaucoup de problèmes de mémoire sur mon mac sous High Sierra. Plutôt que de laisser la fenêtre quitter de force, mon système gèlerait complètement et le seul moyen de récupérer est de forcer un redémarrage.

Après quelques recherches, j'ai découvert que mon système ne créait aucun fichier d'échange, même lorsque la pression mémoire était critique. Il n'y a rien dans le /private/var/vm/répertoire.

J'ai déjà essayé sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist.

Existe-t-il un autre moyen d'activer l'échange? Ou pour exécuter des diagnostics?

Détails supplémentaires:

Je démarre à partir d'un SSD Thunderbolt externe (je ne sais pas si c'est la cause).

Ci-dessous est la sortie de vm_stat. Si je fais quelque chose de gourmand en mémoire à ce stade, mon système se figera.

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                                4116.
Pages active:                            854231.
Pages inactive:                          825841.
Pages speculative:                        27754.
Pages throttled:                              0.
Pages wired down:                        606483.
Pages purgeable:                          22070.
“Translation faults”:                  75731290.
Pages copy-on-write:                     401121.
Pages zero filled:                     49766457.
Pages reactivated:                     17690835.
Pages purged:                           1577284.
File-backed pages:                       503400.
Anonymous pages:                        1204426.
Pages stored in compressor:             6563399.
Pages occupied by compressor:           1875311.
Decompressions:                        21012443.
Compressions:                          32102441.
Pageins:                                2172708.
Pageouts:                                 35123.
Swapins:                                      0.
Swapouts:                                     0.

Modifier:

Quelques détails supplémentaires:

Ceci est la sortie de diskutil ap list

APFS Container (1 found)
|
+-- Container disk4 6BE5FDB5-A68F-4CBF-A404-68AE73E61C10
    ====================================================
    APFS Container Reference:     disk4
    Capacity Ceiling (Size):      499898105856 B (499.9 GB)
    Capacity In Use By Volumes:   452259872768 B (452.3 GB) (90.5% used)
    Capacity Available:           47638233088 B (47.6 GB) (9.5% free)
    |
    +-< Physical Store disk3s2 39853349-6B62-4961-99DE-811BA56465EC
    |   -----------------------------------------------------------
    |   APFS Physical Store Disk:   disk3s2
    |   Size:                       499898105856 B (499.9 GB)
    |
    +-> Volume disk4s1 99688E85-E9EF-3688-A324-913D00FF6A0E
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk4s1 (No specific role)
    |   Name:                      System (Case-insensitive)
    |   Mount Point:               /
    |   Capacity Consumed:         449420767232 B (449.4 GB)
    |   FileVault:                 No
    |
    +-> Volume disk4s2 729366E4-48AA-45A3-95DA-8871B8A29778
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk4s2 (Preboot)
    |   Name:                      Preboot (Case-insensitive)
    |   Mount Point:               Not Mounted
    |   Capacity Consumed:         20357120 B (20.4 MB)
    |   FileVault:                 No
    |
    +-> Volume disk4s3 431C0191-2B1F-480C-94D0-AF4748E6D213
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk4s3 (Recovery)
    |   Name:                      Recovery (Case-insensitive)
    |   Mount Point:               Not Mounted
    |   Capacity Consumed:         509820928 B (509.8 MB)
    |   FileVault:                 No
    |
    +-> Volume disk4s4 5DE0EA6B-CA57-4226-B038-2E256FCC5B98
        ---------------------------------------------------
        APFS Volume Disk (Role):   disk4s4 (VM)
        Name:                      VM (Case-insensitive)
        Mount Point:               Not Mounted
        Capacity Consumed:         2147504128 B (2.1 GB)
        FileVault:                 No

Et le résultat de mount:

/dev/disk4s1 on / (apfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk2 on /Volumes/Storage (hfs, local, journaled)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)

Solution (mise à jour): Un certain nombre de bonnes solutions suggérées. Après avoir réexaminé la question, je recommanderais la solution de lint ci-dessous. C'est la manière la plus générale de prendre en compte les modifications de noms de volume.

kayoz
la source
Regardez dans ce fil pour une explication sur ce qu'il faut faire: apple.stackexchange.com/questions/126669/…
LexS
@ Lexs merci pour votre réponse, mais je ne pense pas que ce fil contient quoi que ce soit lié à mon problème? Ou est-ce que je manque quelque chose?
kayoz

Réponses:

4

J'ai eu le même problème avec High Sierra (et Mojave depuis) ​​avec un SSD externe. Je n'ai pas essayé la suggestion de Glorfindel ♦ d'essuyer le disque sur Sierra sur HFS + avant de restaurer High Sierra, ce qui semble être beaucoup de travail.

Cependant, j'utilise depuis janvier mon propre démon de lancement avec un script bash, similaire à la solution de chrisgooley. Toutefois, mon script vérifie également quel ID de volume monter. Je pensais partager ma solution avec la vérification dynamique du bon identifiant de volume.

Initialement, j'ai également codé en dur l'ID de volume, mais cela posait problème, car chaque fois que le système était démarré avec des lecteurs supplémentaires connectés, l'ID de volume changerait et que le volume d'échange ne serait pas monté.

Mon script et mon démon sont ci-dessous:

mountvm.sh

#!/bin/bash
# Mount the APFS VM volume if it isn't already mounted

VM_VOLUME=$(/usr/sbin/diskutil list | grep "VM" | awk '{ print $7 }') 
# echo "VM Volume is $VM_VOLUME"
for i in {1..5}
do
    if [ ! -e /private/var/vm/sleepimage ]
    then
#       echo "$(date "+%a %d/%m/%Y %I:%M:%S%p") > VM volume not yet mounted..."
#       echo -n "$(date "+%a %d/%m/%Y %I:%M:%S%p") > "
        /usr/sbin/diskutil mount -mountPoint /private/var/vm/ $VM_VOLUME
        break
    else
#       echo "$(date "+%a %d/%m/%Y %I:%M:%S%p") > VM volume already mounted..."
        if [ $i -lt 6 ]
        then
#           echo -n "$(date "+%a %d/%m/%Y %I:%M:%S%p") > Confirming in "
            for count in {2..1}
            do
#               echo -n "$count min..."
                sleep 60
            done
            echo
        fi
    fi
done

exit 0

com.local.mountvm.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.local.mountvm</string>
    <key>ProgramArguments</key>
    <array>
        <string>[/path/to/script]/mountvm.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Quelques notes:

Changez le [/ chemin / à / script] dans la pliste pour placer le script bash à n’importe quel endroit.

Supprimez le # sur les lignes d'écho dans le script bash à résoudre (vous devrez exécuter le script dans Terminal avec sudo ou spécifier un chemin stdout dans la pliste).

Le script vérifie si / private / var / vm / sleepimage existe. Si ce n'est pas le cas, le volume d'échange n'est pas monté et tente de monter le volume correct. Si tel est le cas, il vérifiera encore quatre fois toutes les deux minutes avant de quitter. La raison pour laquelle j'ai ajouté ceci était parce que je trouvais que si j'essayais simplement de monter le volume dès que le démon était chargé, il échouerait.

peluche
la source
6

J'ai eu le même problème lorsque j'ai installé High Sierra sur un SSD externe.

Volume disk3s4 647DA4A9-7E85-4523-A4D2-F0392D3789D4
        ---------------------------------------------------
        APFS Volume Disk (Role):   disk3s4 (VM)
        Name:                      VM (Case-insensitive)
        Mount Point:               Not Mounted
        Capacity Consumed:         4294987776 B (4.3 GB)
        FileVault:                 No

Solution :

  1. Créez un fichier plist en tant qu'utilisateur root et placez-le dans un /Library/LaunchDaemons/dossier. Il doit être écrit en notation de domaine inversé comme ceci:

    /Library/LaunchDaemons/local.mountdisk3s4.plist
    
  2. Copiez simplement ces données XML dans votre fichier plist et modifiez le nom de APFS VM Volume avec le vôtre.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
         <key>Label</key>
         <string>THE NAME OF FILE</string>
         <key>ProgramArguments</key>
         <array>
              <string>/sbin/mount_apfs</string>
              <string>YOUR APFS VOLUME</string>
              <string>/private/var/vm</string>
         </array>
         <key>KeepAlive</key>
         <dict>
        <key>SuccessfulExit</key>
        <false/>
         </dict>    
    </dict>
    </plist>
    

    Dans mon cas, cela ressemble à ceci:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
         <key>Label</key>
         <string>local.mountdisk3s4</string>
         <key>ProgramArguments</key>
         <array>
              <string>/sbin/mount_apfs</string>
              <string>disk3s4</string>
              <string>/private/var/vm</string>
         </array>
         <key>KeepAlive</key>
         <dict>
        <key>SuccessfulExit</key>
        <false/>
         </dict>    
    </dict>
    </plist>
    
  3. Redémarrez votre Mac

Michael Golban
la source
3

Le volume de la machine virtuelle APFS dédié n'est pas monté correctement:

+-> Volume disk4s4 5DE0EA6B-CA57-4226-B038-2E256FCC5B98
    ---------------------------------------------------
    APFS Volume Disk (Role):   disk4s4 (VM)
    Name:                      VM (Case-insensitive)
    Mount Point:               Not Mounted
    Capacity Consumed:         2147504128 B (2.1 GB)
    FileVault:                 No

Il doit être monté sur le point de montage / private / var / vm.

Entrer mountdans le terminal devrait révéler quelque chose comme:

...
/dev/disk4s4 on /private/var/vm (apfs, local, noexec, journaled, noatime, nobrowse)
...

La raison n'est pas claire. Au moins certains fichiers d'échange ont été créés par le passé, car 2,1 Go (= deux fichiers d'échange à 1 Gio) sont utilisés par la machine virtuelle.


Une solution temporaire consiste à spécifier un autre répertoire de fichier d'échange. Après avoir désactivé SIP , vous pouvez le faire en modifiant le fichier /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist avec sudo nano ...ou LaunchControl .

Original:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>Label</key>
    <string>com.apple.dynamic_pager</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>POSIXSpawnType</key>
    <string>Interactive</string>
    <key>ProgramArguments</key>
    <array>
        <string>/sbin/dynamic_pager</string>
    </array>
</dict>
</plist>

Mod:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>Label</key>
    <string>com.apple.dynamic_pager</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>POSIXSpawnType</key>
    <string>Interactive</string>
    <key>ProgramArguments</key>
    <array>
        <string>/sbin/dynamic_pager</string>
        <string>-F</string>
        <string>/vm/swapfile</string>
    </array>
</dict>
</plist>

Si le répertoire / vm n'existe pas, créez-le:

sudo mkdir /vm
sudo chmod 755 /vm

Redémarrez votre Mac par la suite. Activer à nouveau SIP!


À mon avis, cela est lié à la mise à jour supplémentaire 10.13.3. Au moins dans mes différentes machines virtuelles High Sierra, des dossiers / vm supplémentaires ont été créés, chacun contenant un fichier d'échange swap abandonné0. Le répertoire d'échange réel est / private / var / vm -> disk1s4 (volume de la machine virtuelle APFS) bien que testé avec sudo memory_pressure -l criticaldans Terminal.

Je dois approfondir cette question.


Pour résoudre réellement le problème, supprimer et rajouter le volume de la machine virtuelle APFS, en quelque sorte brisé, devrait vous aider:

  • Restaurez le fichier par défaut com.apple.dynamic_pager.plist
  • Vérifiez si le dossier / private / var / vm existe
  • Démarrer en mode de récupération Sierra élevée
  • Ouvrez Terminal dans la barre de menu> Utilitaires et entrez diskutil ap listpour obtenir les détails APFS.
  • Supprimez le volume de la machine virtuelle APFS:

    diskutil ap deleteVolume <av_vmUUID> #<av_vmUUID>: UUID of the APFS Volume with the VM role
    

    Dans votre cas, av_vmUUID est 5DE0EA6B-CA57-4226-B038-2E256FCC5B98 donc:

    diskutil ap deleteVolume 5DE0EA6B-CA57-4226-B038-2E256FCC5B98
    
  • Ajoutez un volume de machine virtuelle APFS:

    diskutil ap addVolume diskX APFS VM -mountpoint /private/var/vm -role V
    

    with diskX: APFS Container Référence du conteneur avec l'UUID 6BE5FDB5-A68F-4CBF-A404-68AE73E61C10 indiqué dans le diskutil ap list(probablement disk3, disk4 ou disk5)

    Le volume sera créé mais il ne sera pas monté car le point de montage spécifié n'existe pas dans le système de base du mode de récupération!

  • Redémarrez votre Mac et vérifiez d’abord si la machine virtuelle est montée sur / private / var / vm avec mount. Le tester avec sudo memory_pressure -l critical.
Klanomath
la source
Merci pour la réponse détaillée, mais malheureusement cela ne fonctionne toujours pas pour moi. Il n'y a rien dans mon dossier / vm / après avoir appliqué cela et redémarré. J'ai essayé le test memory_pressure et aucun échange n'a été créé. J'ai remarqué que je continuais à obtenir un "vm_swap_create_file Failed at XXX secs", mais je me connecte à la console. Et le disque vm est toujours affiché comme non monté.
kayoz
@kayoz Ajout d'une solution possible
klanomath
Merci encore pour tout le temps que vous avez pris pour m'aider à résoudre ce problème. Malheureusement, la suppression et la création du volume de la machine virtuelle ne fonctionnent toujours pas. Après avoir recréé le volume, sa taille a été réduite à 20 Ko. Lorsque je redémarre en mode normal, le volume revient à 2 Go et reste non monté.
kayoz
@Kayoz J'essaie de trouver une autre solution! Avez-vous déjà utilisé du piratage dans le passé pour déplacer la machine virtuelle vers un autre volume? Ou le disque TB contient-il un système "frais" HighSierra (= pas de système mis à niveau)?
klanomath
Je n'ai jamais touché à la VM. Le disque TB n'a pas de nouveau système. C'était autrefois Sierra, qui a été améliorée pour devenir High Sierra. J'ai initialement migré mon système sur le disque TB via une sauvegarde de machine à heure.
kayoz
1

J'ai le même problème après la mise à niveau. Mon moyen consiste simplement à effacer le conteneur APFS, puis à utiliser Time Machine pour restaurer Sierra avec HFS +, puis à restaurer High Sierra avec des partitions APFS. Ci-dessous sont mes configs qui le font fonctionner.

MacBook-Pro:~ root# diskutil apfs list
APFS Container (1 found)
|
+-- Container disk1 96CC8155-6433-4240-B445-3E909F80E1CF
    ====================================================
    APFS Container Reference:     disk1
    Capacity Ceiling (Size):      250790436864 B (250.8 GB)
    Capacity In Use By Volumes:   221076267008 B (221.1 GB) (88.2% used)
    Capacity Available:           29714169856 B (29.7 GB) (11.8% free)
    |
    +-< Physical Store disk0s2 0D0BAEFE-FBC0-496D-9260-5F2A5D6B0793
    |   -----------------------------------------------------------
    |   APFS Physical Store Disk:   disk0s2
    |   Size:                       250790436864 B (250.8 GB)
    |
    +-> Volume disk1s1 5AA2CDA5-EAD1-4D9C-BEE0-E85957526A37
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk1s1 (No specific role)
    |   Name:                      Macintosh HD (Case-insensitive)
    |   Mount Point:               /
    |   Capacity Consumed:         218261549056 B (218.3 GB)
    |   FileVault:                 No
    |
    +-> Volume disk1s2 4BC0480C-2FED-4B48-A3A5-5E133B707776
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk1s2 (Preboot)
    |   Name:                      Preboot (Case-insensitive)
    |   Mount Point:               Not Mounted
    |   Capacity Consumed:         19046400 B (19.0 MB)
    |   FileVault:                 No
    |
    +-> Volume disk1s3 DF8D07CD-27C0-4EB2-A939-2D3E2E64EB66
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk1s3 (Recovery)
    |   Name:                      Recovery (Case-insensitive)
    |   Mount Point:               Not Mounted
    |   Capacity Consumed:         509820928 B (509.8 MB)
    |   FileVault:                 No
    |
    +-> Volume disk1s4 27BDB6EB-9BE8-417E-8B03-D2C03E64DD30
        ---------------------------------------------------
        APFS Volume Disk (Role):   disk1s4 (VM)
        Name:                      VM (Case-insensitive)
        Mount Point:               /private/var/vm
        Capacity Consumed:         2147504128 B (2.1 GB)
        FileVault:                 No
MacBook-Pro:~ root# 
MacBook-Pro:~ root# 
MacBook-Pro:~ root# diskutil mount -mountPoint /private/var/vm disk1s4
Volume VM on disk1s4 mounted
MacBook-Pro:~ root# 


MacBook-Pro:~ root# vi /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
MacBook-Pro:~ root# cat /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>Label</key>
    <string>com.apple.dynamic_pager</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>POSIXSpawnType</key>
    <string>Interactive</string>
    <key>ProgramArguments</key>
    <array>
        <string>/sbin/dynamic_pager</string>
                <string>-F</string>
                <string>/private/var/vm/swapfile</string>
    </array>
</dict>
</plist>
MacBook-Pro:~ root# ls -l /sbin/dynamic_pager
-rwxr-xr-x  1 root  wheel  43920  1 19 16:32 /sbin/dynamic_pager
MacBook-Pro:~ root# ls -l /private/var/vm/swapfile*
-rw-------  1 root  wheel  1073741824  3 28 00:36 /private/var/vm/swapfile0
Chang-Han Huang
la source
Je vois que vous avez essayé de modifier votre réponse, mais le système ne vous a pas reconnu. Veuillez créer un compte et demander via le formulaire Contactez-nous de le fusionner avec votre ancien.
Glorfindel
1

J'ai exactement les mêmes symptômes. J'ai installé High Sierra 10.13.4 sur un disque SSD Thunderbolt externe APFS fraîchement formaté. Le Moniteur d'activité n'indique aucun espace d'échange et diskutil apfs listindique que la partition de machine virtuelle n'est pas montée, comme ci-dessus. La panique se répète lorsque je manque de mémoire (mon ordinateur ne dispose que de 4 Go de RAM).

Ma solution, que je n'ai pas encore testée, consiste à créer un clone Carbon Copy du disque externe, puis à l'effacer et à le reformater (à l'aide de la commande "Partition" de Utilitaire de disque) sous Mac OS étendu (journalisé), puis à restaurer en utilisant CCC. Cela devrait me rendre ma VM.

Alan Harper
la source
1

J'ai rencontré ce problème lorsque je suis passé à Mojave. Mon système d'exploitation est installé sur un SSD externe. Ma solution a finalement ressemblé à celle de Michael Golban, mais il me fallait une commande supplémentaire.

J'ai fini par écrire un petit script bash et le charger avec un LaunchDaemon.

/usr/local/sbin/mount_swap.sh

#!/bin/bash
/sbin/mount_apfs disk3s4 /private/var/vm
diskutil mount -mountPoint /private/var/vm disk3s4

com.local.mountswap.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     <key>Label</key>
     <string>com.local.mountswap</string>
     <key>ProgramArguments</key>
     <array>
          <string>/usr/local/sbin/mount_swap.sh</string>
     </array>
     <key>KeepAlive</key>
     <dict>
    <key>SuccessfulExit</key>
    <false/>
     </dict>
</dict>
</plist>

Dès que ces commandes ont été exécutées pendant les tests, la ligne "Swap Used" du moniteur d'activité commence à afficher des valeurs positives.

chrisgooley
la source
0

Je suis également dans cette situation, démarrant à partir d'un SSD Samsung T5 connecté par USB3. J'ai essayé la solution de lint, mais dans mon cas, la commande

/usr/sbin/diskutil list | grep "VM" | awk '{ print $7 }'

génère deux réponses, car le disque dur interne et le disque SSD externe contiennent tous deux une partition swap (VM). Je ne peux pas trouver de solution à ce problème (automatiser le processus de montage au démarrage) moi-même, alors quelqu'un peut-il aider?


[Pinetops] Bizarrement, je ne peux pas ajouter de commentaire, je vais donc modifier votre "réponse" à la place. J'étais dans une situation similaire (macOS Mojave démarrant à partir d'un SSD Samsung T5 1 Go). Moi aussi, je vois deux réponses lorsque j'exécute la diskutilcommande ci-dessus . Je pense donc que la réponse de lint ne fonctionnera pas pour moi (de plus, je vois un fichier nommé /private/var/vm/sleepimagemême si la machine virtuelle n'est pas montée). Cependant, j'ai essayé la réponse de Michael Golban et cela a fonctionné avec un effort minimal. Tout d'abord, je devais déterminer quelle machine virtuelle devait être montée lors du démarrage du disque SSD de Samsung. Je l'ai fait avec la commande suivante et ensuite regardé pour voir quel disque a été monté /.

/usr/sbin/diskutil ap list

Le résultat pertinent pour moi était:

+-> Volume disk5s1 14706492-442E-3E44-84D8-C3A216EAB040
|   ---------------------------------------------------
|   APFS Volume Disk (Role):   disk5s1 (No specific role)
|   Name:                      Ext macOS (Case-insensitive)
|   Mount Point:               /
|   Capacity Consumed:         417911861248 B (417.9 GB)
|   FileVault:                 No

Alors maintenant, je sais que la machine virtuelle devrait être sur le disque5. Je regarde plus bas dans la sortie de diskutilet je vois:

+-> Volume disk5s4 8FF45FA5-EDB8-4812-947A-C1163BBDF5C4
    ---------------------------------------------------
    APFS Volume Disk (Role):   disk5s4 (VM)
    Name:                      VM (Case-insensitive)
    Mount Point:               Not Mounted
    Capacity Consumed:         10737463296 B (10.7 GB)
    FileVault:                 No

Alto! Il devrait être montage disk5s4 comme espace d'échange. J'ai donc suivi la réponse de Michael Golban, en substituant disk5s4partout où il a utilisé disk3s4dans son exemple spécifique. Après un redémarrage, diskutil ap listmontre qu'il disk5s4est correctement monté.

+-> Volume disk5s4 8FF45FA5-EDB8-4812-947A-C1163BBDF5C4
    ---------------------------------------------------
    APFS Volume Disk (Role):   disk5s4 (VM)
    Name:                      VM (Case-insensitive)
    Mount Point:               /private/var/vm
    Capacity Consumed:         10737463296 B (10.7 GB)
    FileVault:                 No

En outre, vm_statmontre non-0 pour les valeurs Swapins et Swapouts.

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                               15355.
Pages active:                           1504355.
Pages inactive:                         1006398.
Pages speculative:                       593600.
Pages throttled:                              0.
Pages wired down:                        695931.
Pages purgeable:                         217108.
"Translation faults":                  20908140.
Pages copy-on-write:                     566900.
Pages zero filled:                     14492420.
Pages reactivated:                      1136316.
Pages purged:                            693655.
File-backed pages:                      1424716.
Anonymous pages:                        1679637.
Pages stored in compressor:             1427995.
Pages occupied by compressor:            378113.
Decompressions:                          426681.
Compressions:                           3751860.
Pageins:                                2715810.
Pageouts:                                 14437.
Swapins:                                 438359.
Swapouts:                                917646.
Hans-Göran Puke
la source
0

J'ai eu une expérience similaire, mais ma configuration est un peu inhabituelle. J'ai:

  1. A l'origine, un Fusion Drive (128SSD + 1TBHDD), que j'ai remplacé le disque dur par un disque SSD tiers (Crucial MX500 (1 To)). Et oui, j'ai recréé le disque Fusion après l'échange. Je reviens donc au Fusion Drive original de 1,2 To, mais composé de deux disques SSD (les deux APFS).
  2. Un peu plus de RAM que la plupart des systèmes, à 32 Go (à l'origine 16 Go, mis à niveau à 32 Go).
  3. Trois disques externes, 2 disques SSD connectés via USB 3.0 (AKA 3.1v1), l’un à 500 Go (APFS) et l’autre à 256 Go (HFS +), et le troisième est un disque dur standard à 3 To (HFS +), également connecté via le même Bus USB.
  4. Courir Mojave.

Maintenant, voici où / quand le problème s'est présenté: j'ai décidé de convertir le disque SSD de 256 Go en APFS. La conversion s'est bien passée. Pas d'issues. CEPENDANT, dès que cela a été terminé, mon outil de surveillance (iStat) a commencé à afficher un lecteur supplémentaire intitulé "VM". J'étais méfiant ... Également unique dans mon cas: j'exécute des machines virtuelles à l'aide de Parallels. Comme je l'ai dit, j'étais curieux de savoir ce que ce nouveau lecteur intitulé VM faisait dans mon menu iStat ... Je n'arrêtais pas de fouiller et je réalisais que c'était supposé être le fichier d'échange. J'ai ouvert Activity Monitor et, à ma grande surprise, ma mémoire était presque saturée et la valeur du fichier d'échange était 0, ce qui n'est PAS correct. OS X est censé commencer à paginer des objets sur le lecteur de swap au lieu de manquer de mémoire.

J'avais l'impression qu'il manquait quelque chose au système d'exploitation lorsqu'il convertissait un volume en APFS et que le redémarrage était tout ce dont j'avais besoin pour remettre les choses en ordre. Eh bien, dans mon cas, cela a fait l'affaire. Après le redémarrage, le système a commencé à paginer dans le fichier d'échange comme il se doit, et iStat n'a plus montré le "mystérieux" lecteur de machine virtuelle. Et tous mes lecteurs étaient dans leurs versions respectives du système de fichiers.

Pardon. Je sais que cela n'aide probablement pas à résoudre la question initiale, mais cela pourrait nous éclairer sur le fonctionnement interne du problème.

Sois bien tout le monde, Rapha.

rferreira.dba
la source
-1

Mac OSX High Sierra est un dérivé de Linux, et de nombreux systèmes d'exploitation Linux recommandent de désactiver le swap lors de l'installation sur un disque SSD, car le type de stockage utilisé dans une partition swap impose une charge potentiellement destructrice sur le support magnétique du disque SSD. Donc, je suppose que High Sierra désactive en standard l’espace de permutation sur les disques SSD. Mon option préférée est d’installer l’espace de swap sur un disque traditionnel séparé.

https://askubuntu.com/questions/652337/why-no-swap-partitions-on-ssd-drives

Miller le gorille
la source
1
MacOS n'est pas un dérivé de Linux - En fait, la conception de base est antérieure à Linux. Son swap est assez différent - le swap sur disque dur plutôt que SSDS ralentira énormément le système.
Marc
Je suis d’accord avec Miller, qu’il n’est pas conseillé d’échanger votre disque SSD principal. L’échange sur tout système UNIX est volatile et les écritures constantes finiront par poser des problèmes avec le disque SSD et les secteurs devront être remappés en raison de la défaillance du support magnétique. Et si le disque échoue, votre système ne démarrera pas. Un disque SSD non principal pour le swap serait certainement beaucoup plus rapide qu'un disque externe traditionnel basé sur un plateau et serait la solution.
john
En ce qui concerne linux <-> macOS, discussion poulet / œuf: sont tous des dérivés de AT & T Unix de Dennis Ritchie. fr.wikipedia.org/wiki/Unix
john