물리적 메모리가 가득 찼을 때 요세미티의 vm_compressor = VM_PAGER_DEFAULT가 정지됨


11

메모리 압축으로 인해 지연이 자주 발생하므로 명령을 사용하여 메모리 압축을 해제했습니다.

sudo nvram boot-args="vm_compressor=1"

지연이 사라졌지 만 메모리가 많은 응용 프로그램을 열었을 때 충돌이 발생했습니다. 동결 중에는 일부 앱을 종료 할 수 없었습니다. 마우스 커서 만 움직일 수있었습니다. 몇 분 후 OSX는 단순히 포기하고 다시 시작했습니다. OSX의 메모리가 부족한 것 같습니다. 기본 호출기가 스왑을 사용하지 않는 것이 사실입니까?

활동 모니터 메모리 상태

이것은 OSX가 거의 충돌했을 때 vm_stat 60의 출력입니다. 이번에는 일부 앱을 종료했습니다.

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 

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의 답변입니다.

다음을 기반으로이 문제를 해결할 계획이 없습니다.

이 구성은 더 이상 지원되지 않습니다.

우리는 지금이 보고서를 닫고 있습니다.

해결 방법에 대해 궁금한 사항이 있거나 여전히 중요한 문제인 경우 해당 정보로 버그 보고서를 업데이트하십시오.

이 문제에 영향을 줄 수있는 업데이트가 있는지 새로운 Apple 릴리스를 정기적으로 확인하십시오.

따라서 Apple은 이것을 지원 하지 않기 때문에 기본 호출기가 스왑을 사용하지 않는 것이 사실입니까?


당신은 이미 답을 읽었다 @keithyip 여기 ?
klanomath


1
의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
bmike

답변:


4

문제는 페이징이 실제로 해제되어 있지는 않지만 모드 1은 더 이상 표준 메모리 관리의 구현이 아니라 거의 모든 활성 메모리를 "유선"으로 만들어 압축을 방지하고 압축을 방지하지만 스왑으로도 사용하지 않는 추악한 해킹입니다. .


흥미롭지 만 투표하기 전에 증거를지지하고 싶습니다. 오픈 소스에 뭔가 있을까요?
Graham Perrin

1
이것은 많은 의미가 있습니다. 나는 이런 식으로 침입 할 수있는 시스템을 가지고 있지 않다. 어쩌면 내가 약간의 VM을 가동시킬 때, 나는 엘 캐피 탄을 "파괴"하고 내가 배울 수있는 것을 볼 것이다. 실제로, 나는 애플의 VM을 엉망으로 만들 필요가 없었고, 대신 내가 실행하는 앱을 조정하거나 다른 병목 현상을 제거하여 생산성을 유지했습니다.
bmike

@GrahamPerrin 더 쉽게, 모드 1을 설정하고, 활동 모니터를 시작하고, "Wired Memory"대 "Memory Used"를 살펴보십시오. 경우 폐쇄.
tolgraven

3

OSX Mavericks에서는 vm_compressor=1높은 RAM VMWare Fusion 게스트를 사용할 때 매우 느린 세션에 연루된 것처럼 보였으므로 boot-arg & reboot 를 통해 VM 압축을 해제 했습니다. Mavericks에서 모든 것이 잘 작동하는 것처럼 보였지만 압축은 없지만 여전히 예상되는 페이징입니다.

OSX Yosemite (10.10.4)로 업그레이드 한 후 설명과 비슷한 동결 충돌이 발생했습니다. (특히 10-15 분의 가벼운 웹 브라우징 후에는 마우스 / 디스플레이 / 키보드가 정지합니다. 약 1 분 후에 시스템이 자발적으로 재부팅됩니다. 재부팅 후의 충돌 보고서는 4 가지 모두에서 "진행 감시"이벤트를 언급했습니다. 사례)

다행히도 내가 시도한 첫 번째 것은 VM 압축을 활성화하는 것입니다 ( vm_compressor=4). Yosemite를 사용한 후 ~ 90 분 동안 4 번의 충돌이 발생한 후 4 일 동안 충돌이 발생하지 않았습니다.

: 내가 확인할 수 그래서 vm_compressor=1요세미티 지금 충돌 버그를 보인다 전에 기능 같았다 설정을. 이 값 vm_compressor=4( 'VM_PAGER_COMPRESSOR_WITH_SWAP')에 대해 매버릭스 이상의 실제 기본값을 사용하면 문제가 해결 된 것으로 보입니다.


1
vm_compressor=1boot-arg & reboot는 OS X 10.9 Mavericks에서 작동하며 OS X 10.10에서는 작동하지 않습니다. 요세미티는 OS X 10.11 El Capitan에서 작동합니까?
Albert

1
vm_compressor=1OS X 10.12 Sierra부터는 커널 내부 vm_compressor=1로 자동 변환됩니다 vm_compressor=4. 이 답변을 참조하십시오 .
올드 프로
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.