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.
Réponses:
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
com.local.mountvm.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.
la source
J'ai eu le même problème lorsque j'ai installé High Sierra sur un SSD externe.
Solution :
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:Copiez simplement ces données XML dans votre fichier plist et modifiez le nom de APFS VM Volume avec le vôtre.
Dans mon cas, cela ressemble à ceci:
Redémarrez votre Mac
la source
Le volume de la machine virtuelle APFS dédié n'est pas monté correctement:
Il doit être monté sur le point de montage / private / var / vm.
Entrer
mount
dans le terminal devrait révéler quelque chose comme: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:
Mod:
Si le répertoire / vm n'existe pas, créez-le:
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 critical
dans 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:
diskutil ap list
pour obtenir les détails APFS.Supprimez le volume de la machine virtuelle APFS:
Dans votre cas, av_vmUUID est 5DE0EA6B-CA57-4226-B038-2E256FCC5B98 donc:
Ajoutez un volume de machine virtuelle APFS:
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!
mount
. Le tester avecsudo memory_pressure -l critical
.la source
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.
la source
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 list
indique 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.
la source
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
com.local.mountswap.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.
la source
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
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
diskutil
commande 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/sleepimage
mê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é/
.Le résultat pertinent pour moi était:
Alors maintenant, je sais que la machine virtuelle devrait être sur le disque5. Je regarde plus bas dans la sortie de
diskutil
et je vois:Alto! Il devrait être montage disk5s4 comme espace d'échange. J'ai donc suivi la réponse de Michael Golban, en substituant
disk5s4
partout où il a utilisédisk3s4
dans son exemple spécifique. Après un redémarrage,diskutil ap list
montre qu'ildisk5s4
est correctement monté.En outre,
vm_stat
montre non-0 pour les valeurs Swapins et Swapouts.la source
J'ai eu une expérience similaire, mais ma configuration est un peu inhabituelle. J'ai:
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.
la source
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
la source