vm_compressor = VM_PAGER_DEFAULT dans Yosemite a provoqué un gel lorsque la mémoire physique était pleine

11

La compression de la mémoire a souvent causé un décalage, j'ai donc essayé de la désactiver en utilisant la commande

sudo nvram boot-args="vm_compressor=1"

Le décalage a disparu, mais j'ai eu un blocage brutal lorsque j'ai ouvert des applications gourmandes en mémoire. Pendant le gel, il n'a pas été possible de quitter certaines applications. Je ne pouvais que déplacer le curseur de la souris. Après plusieurs 10 minutes, OSX a simplement abandonné et s'est redémarré. Il semblait que OSX était à court de mémoire. Est-il vrai que le pager par défaut n'utilise pas de swap?

État de la mémoire du moniteur d'activité

Il s'agit de la sortie de vm_stat 60 lorsque OSX était sur le point de planter. J'ai réussi à quitter certaines applications cette fois.

Mach Virtual Memory Statistics: (page size of 4096 bytes)
    free   active   specul inactive throttle    wired  prgable   faults     copy    0fill reactive   purged file-backed anonymous cmprssed cmprssor  dcomprs   comprs  pageins  pageout  swapins swapouts
    4058    44827     4657    48725  1634771  1994370    18399  131709K  7262284 57729401   556707   234267       96668      1541        0        0        0        0  7562237   114241        0        0 
    9946    34459     3828    37655  1644905  2010562     5380   276137     9087   169197    23038    24071       75166       776        0        0        0        0    66041     2190        0        0 
    4849    19263     1147    20141  1687072  2051233      887   432193    13109   257173    25604    13480       40135       416        0        0        0        0    56827     4094        0        0 
   58504    23530    44743    21988  1585153  1947800     5595   129338     4993    72054     5776       58       86942      3319        0        0        0        0    81298     1083        0        0 
    4002    39171    38322    29484  1625825  1985636     7638   152421     5034    84976        1       24      101932      5045        0        0        0        0    60968        5        0        0 
    3953    41098     2953    39886  1649756  2008776     6047   128151     5709    70047      565     6361       82653      1284        0        0        0        0    60644       94        0        0 
   17900    37639    22066    40355  1619144  1978515     2208   126851     5895    55252    16022     5178       95881      4179        0        0        0        0    71205     1158        0        0 
    3618    46697     4240    51043  1631256  1991014     6082   157833     6794    84127        3       60       90901     11079        0        0        0        0    54852      206        0        0 

La version et la construction OSX sont 10.10.2 (14C109)

$ pmset -g
Active Profiles:
Battery Power       -1
AC Power        -1*
Currently in use:
 standbydelay         4200
 standby              0
 womp                 1
 halfdim              1
 hibernatefile        /var/vm/sleepimage
 sms                  1
 networkoversleep     0
 disksleep            10
 sleep                0 (sleep prevented by SubmitDiagInfo)
 hibernatemode        3
 ttyskeepawake        1
 displaysleep         0
 acwake               0
 lidwake              1

$ nvram -p
tbt-options %00
efi-apple-payload0-data %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%00%00%00%00%00%00%04%01*%00%01%00%00%00(%00%00%00%00%00%00%00%00@%06%00%00%00%00%00%1b|%00%00-/%00%00%ea%0e%00%00%8aO%00%00%02%02%04%04H%00\%00E%00F%00I%00\%00A%00P%00P%00L%00E%00\%00F%00I%00R%00M%00W%00A%00R%00E%00\%00P%00o%00r%00t%00M%00i%00c%00r%00o%00.%00b%00i%00n%00%00%00%7f%ff%04%00
efi-boot-device <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>23B4430A-E749-440D-85DC-879D5DFFF3A4</string></dict></dict><key>BLLastBSDName</key><string>disk0s3</string></dict></array>%00
fmm-mobileme-token-FMM  ...
SystemAudioVolumeDB %80
prev-lang:kbd   en:0
EFICapsule_Result   STAR
efi-apple-recovery  <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>00007C1B-2F2D-0000-EA0E-00008A4F0000</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\MBP81_0047_27B_LOCKED.scap</string></dict></array>%00
efi-apple-payload1-data %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%00%00%00%00%00%00%04%01*%00%01%00%00%00(%00%00%00%00%00%00%00%00@%06%00%00%00%00%00%1b|%00%00-/%00%00%ea%0e%00%00%8aO%00%00%02%02%04%04T%00\%00E%00F%00I%00\%00A%00P%00P%00L%00E%00\%00F%00I%00R%00M%00W%00A%00R%00E%00\%00H%00P%00M%00-%00e%00m%00-%000%000%000%002%000%000%000%007%00.%00b%00i%00n%00%00%00%7f%ff%04%00
ThorUpdateResult    %00%00%05%0e%01%03%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
LocationServicesEnabled %01
fmm-computer-name   MacBook Pro
backlight-level 3%01
efi-apple-payload1  <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>00007C1B-2F2D-0000-EA0E-00008A4F0000</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\HPM-em-00020007.bin</string></dict></array>%00
SmcFlasherResult    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
bluetoothActiveControllerInfo   %1a%82%ac%05%00%00%000%11%fa(%cf%da%ef%ab%c5
efi-apple-payload0  <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>00007C1B-2F2D-0000-EA0E-00008A4F0000</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\PortMicro.bin</string></dict></array>%00
SystemAudioVolume   %80
boot-args   vm_compressor=1
efi-boot-device-data    %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%00%00%00%00%00%00%04%01*%00%03%00%00%00h%8b/%25%00%00%00%00 _%13%00%00%00%00%00%0aC%b4#I%e7%0dD%85%dc%87%9d]%ff%f3%a4%02%02%7f%ff%04%00
boot-gamma  %10%06%00%00%c5%9c%00%00%00%00%00%00%f2%00%00%00%00%00%00%00%13%00%c1%05%85%00C%0c%86%02%04%12%d6%05F%18/%0b%08!B%15%0c30.O<%1f9UUNSZk%ebh%1dv%f3r%a4%91%10%8a%a5%97%0d%92%a8%a3K%9ej%a9%17%a5%ad%b4%e4%b0%ae%b9]%b7%b3%ccG%cd%b7%dc%8b%dc%fd%f5)%f3%0f%00%01%06y%00%03%0d~%02%04%13%bb%05%06%19l%0a%08!%8c%12%8c3%0e)N;E1%1aj*]%1f%7f%c0o%a4%93y%80%a8%a3%f6%8f%ad%b5%c8%a2%b4%d1%1d%c4%ba%ea%bd%e0%fd%f6%fa%ef%14%00%01%06j%00%03%0d9%02%04%13%1d%05F%19r%09%08!v%10L2%00#%0e:]*%9ex%02^%a3%8eVoi%a6%ea%80%ad%b7w%90%f1%c4v%9d%f4%d1%a5%ab%b7%df8%bd%fb%ec%f7%ce}%f6%b6%dd%fe%f9%9a%e4%ff%fc%cf%ec%ff%fd]%f1%ff%fe%df%f7
bluetoothInternalControllerInfo %1a%82%ac%05%000%11%fa(%cf%da%ef%ab%c5

ls -laO /private/var/vm
total 8388608
drwxr-xr-x   3 root  wheel  -        102 Mar 20 23:13 .
drwxr-xr-x  27 root  wheel  -        918 Oct 20 10:34 ..
-rw------T   1 root  wheel  - 4294967296 Mar 20 22:16 sleepimage

Apple a refusé de le réparer. Telle est la réponse d'Apple.

Il n'est pas prévu de résoudre ce problème sur la base des éléments suivants:

Cette configuration n'est plus prise en charge.

Nous clôturons maintenant ce rapport.

Si vous avez des questions sur la résolution, ou s'il s'agit toujours d'un problème critique pour vous, veuillez mettre à jour votre rapport de bogue avec ces informations.

Veuillez vérifier régulièrement les nouvelles versions d'Apple pour les mises à jour susceptibles d'affecter ce problème.

Donc, comme Apple ne prend pas en charge cela, je me demande si est-il vrai que le pager par défaut n'utilise pas de swap?

Keithyip
la source
@keithyip Avez-vous déjà lu la réponse ici ?
klanomath
1
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
bmike

Réponses:

4

Le problème n'est pas que la pagination est réellement désactivée, mais que le mode 1 n'est plus une implémentation de la gestion de la mémoire standard, mais plutôt un vilain piratage qui empêche la compression en rendant presque toute la mémoire active "câblée", empêchant ainsi la compression mais en tant qu'échange également à part .

tolgraven
la source
Intéressant, mais j'aimerais voir des preuves à l'appui avant de voter. Quelque chose en open source, peut-être?
Graham Perrin,
1
Cela a beaucoup de sens. Je n'ai pas de système que je puisse briser de cette façon - peut-être que lorsque je tournerai un peu de machine virtuelle, j'essaierai de "casser" El Capitan et de voir ce que je peux apprendre. Dans la pratique, je n'ai jamais eu besoin de jouer avec la machine virtuelle d'Apple et de régler les applications que j'exécute ou d'éliminer un autre goulot d'étranglement pour rester productif.
bmike
@GrahamPerrin encore plus facile, définissez le mode 1, lancez le moniteur d'activité, jetez un œil à la "Mémoire câblée" par rapport à la "Mémoire utilisée". Affaire classée.
tolgraven
3

Dans OSX Mavericks, j'avais également désactivé la compression VM (via le vm_compressor=1boot-arg et le redémarrage), car il semblait impliqué dans certaines sessions très lentes lors de l'utilisation d'un invité VMWare Fusion à RAM élevée. Tout semblait bien fonctionner dans Mavericks, pas de compression mais toujours la pagination attendue.

Après la mise à niveau vers OSX Yosemite (10.10.4), je recevais des blocages similaires à ce que vous décrivez. (Plus précisément, après seulement 10 à 15 minutes de navigation Web légère, la souris / l'affichage / le clavier se figeait. Après environ une autre minute, la machine redémarrait spontanément. Le rapport de plantage après le redémarrage mentionnait un événement "chien de garde" dans les quatre cas). cas.)

Heureusement, la première chose que j'ai essayée a été de réactiver la compression VM ( vm_compressor=4). Après 4 accidents dans les premières 90 minutes d'utilisation de Yosemite, il n'y a eu aucun accident depuis 4 jours.

Je peux donc confirmer: le vm_compressor=1paramètre qui semblait fonctionnel avant Yosemite semble maintenant crash-buggy. L'utilisation de la valeur par défaut réelle Mavericks et au-delà pour cette valeur, vm_compressor=4('VM_PAGER_COMPRESSOR_WITH_SWAP'), semble résoudre.

gojomo
la source
1
vm_compressor=1boot-arg & reboot fonctionne sous OS X 10.9 Mavericks, et ne fonctionne pas sous OS X 10.10 Yosemite, je suis curieux, cela fonctionnera-t-il sous OS X 10.11 El Capitan?
Albert
1
vm_compressor=1était si mauvais qu'à partir d'OS X 10.12 Sierra, il vm_compressor=1est automatiquement converti à l' vm_compressor=4intérieur du noyau. Voir cette réponse .
Old Pro