vm_compressor = VM_PAGER_DEFAULT in Yosemite ha causato il blocco quando la memoria fisica era piena


11

La compressione della memoria ha causato frequentemente un ritardo, quindi ho provato a disattivarlo utilizzando il comando

sudo nvram boot-args="vm_compressor=1"

Il ritardo era scomparso ma ho avuto un blocco anomalo quando ho aperto alcune app affamate di memoria. Durante il congelamento, non è stato possibile chiudere alcune app. Potevo solo spostare il cursore del mouse. Dopo diversi 10 minuti, OSX ha semplicemente rinunciato e si è riavviato. Sembrava che OSX fosse esaurito. È vero che il cercapersone predefinito non utilizza lo scambio?

Stato memoria monitor attività

Questo è l'output di vm_stat 60 quando OSX stava quasi andando in crash. Questa volta sono riuscito a chiudere alcune app.

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 versione e la build di OSX è 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 ha rifiutato di risolverlo. Questa è la risposta di Apple.

Non ci sono piani per affrontare questo in base a quanto segue:

Questa configurazione non è più supportata.

Stiamo chiudendo questo rapporto.

Se hai domande sulla risoluzione, o se questo è ancora un problema critico per te, ti preghiamo di aggiornare la tua segnalazione di bug con tali informazioni.

Assicurati di controllare regolarmente le nuove versioni di Apple per eventuali aggiornamenti che potrebbero influenzare questo problema.

Quindi, poiché Apple non lo supporta, mi chiedo se è vero che il cercapersone predefinito non utilizza lo swap?


@keithyip Hai già letto la risposta qui ?
klanomath,


1
I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
bmike

Risposte:


4

Il problema non è che il paging è in realtà disattivato ma che la modalità 1 non è più un'implementazione della gestione della memoria standard ma invece un brutto hack che impedisce la compressione rendendo "cablata" quasi tutta la memoria attiva, impedendo quindi la compressione ma anche a parte lo scambio .


Interessante, ma mi piacerebbe vedere prove a sostegno prima di votare. Qualcosa in open source, forse?
Graham Perrin,

1
Questo ha molto senso. Non ho un sistema che posso rompere in questo modo - forse quando avrò fatto girare un po 'di VM, proverò a "rompere" El Capitan e vedrò cosa posso imparare. In pratica, non ho mai avuto bisogno di scherzare con la VM di Apple e invece di ottimizzare le app che eseguo o eliminare un altro collo di bottiglia per rimanere produttivo.
bmike

@GrahamPerrin è ancora più semplice, imposta la modalità 1, avvia Activity Monitor, dai un'occhiata a "Memoria cablata" anziché "Memoria utilizzata". Caso chiuso.
tolgraven,

3

In OSX Mavericks, avevo anche disattivato la compressione VM (tramite vm_compressor=1boot-arg e riavvio), perché sembrava implicato in alcune sessioni molto lente quando si utilizzava un guest VMWare Fusion ad alta RAM. Tutto sembrava funzionare bene in Mavericks, nessuna compressione ma ancora il paging previsto.

Dopo l'aggiornamento a OSX Yosemite (10.10.4), stavo ottenendo crash di blocco simili a quello che descrivi. (In particolare, dopo soli 10-15 minuti di navigazione web leggera, il mouse / display / tastiera si bloccherebbe. Dopo circa un altro minuto, la macchina si riavvierebbe spontaneamente. Il rapporto di crash dopo il riavvio menzionava un evento "watchdog di avanzamento" in tutti e quattro casi).

Fortunatamente, la prima cosa che ho provato è stata la riattivazione della compressione VM ( vm_compressor=4). Dopo 4 arresti anomali nei primi ~ 90 minuti di utilizzo di Yosemite, non si sono verificati arresti anomali nei 4 giorni successivi.

Quindi posso confermare: l' vm_compressor=1impostazione che sembrava funzionale prima di Yosemite ora sembra piena di errori. L'uso del valore predefinito Mavericks-and-beyond per questo valore, vm_compressor=4('VM_PAGER_COMPRESSOR_WITH_SWAP'), sembra risolto.


1
vm_compressor=1boot-arg & reboot funziona in OS X 10.9 Mavericks e non funziona in OS X 10.10 Yosemite, sono curioso, funzionerà in OS X 10.11 El Capitan?
Albert,

1
vm_compressor=1era così grave che a partire da OS X 10.12 Sierra, vm_compressor=1viene automaticamente convertito vm_compressor=4nel kernel. Vedere questa risposta .
Vecchio Pro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.