物理メモリがいっぱいになると、ヨセミテのvm_compressor = VM_PAGER_DEFAULTがフリーズする


11

メモリ圧縮によりラグが頻繁に発生したため、次のコマンドを使用してオフにしてみました

sudo nvram boot-args="vm_compressor=1"

遅延はなくなりましたが、メモリを大量に消費するアプリを開いたときにクラッシュしてフリーズしました。フリーズ中、一部のアプリを終了できませんでした。マウスカーソルを動かすことしかできませんでした。数10分後、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はこれをサポートしていないので、デフォルトのページャーがスワップを使用しないのは本当ですか?


@keithyipあなたはすでにここで答えを読みましか?
クラノマス2015年


1
コメントは詳細な議論のためのものではありません。この会話はチャットに移動しました
bmike

回答:


4

問題は、ページングが実際にはオフになっているのではなく、モード1が標準のメモリ管理の実装ではなく、ほとんどすべてのアクティブなメモリを「有線」にすることで圧縮を妨げる醜いハックです。 。


興味深いですが、投票する前に裏付けとなる証拠を見たいのですが。オープンソースの何かでしょうか?
Graham Perrin、2015年

1
これは非常に理にかなっています。私はこの方法で破壊できるシステムを持っていません-多分少しVMを起動したときに、El Capitanを「破壊」して、私が何を学べるか見てみましょう。実際には、AppleのVMをいじる必要はなく、代わりに、実行するアプリを調整するか、生産性を維持するために別のボトルネックを排除するだけです。
bmike

@GrahamPerrinはさらに簡単です。モード1を設定し、アクティビティモニターを起動して、「ワイヤードメモリ」と「使用メモリ」を比較します。ケースは閉じられました。
tolgraven 2015年

3

OSX Mavericksでは、vm_compressor=1RAMの多いVMWare Fusionゲストを使用しているときに非常に遅いセッションに関係しているようだったため、(boot-arg&reboot を介して)VM圧縮もオフにしていました。Mavericksではすべてが正常に機能しているようで、圧縮は行われていませんが、予想されるページングが行われています。

OSX Yosemite(10.10.4)にアップグレードした後、私はあなたが説明したのと同様のフリーズクラッシュを起こしていました。(具体的には、わずか10〜15分の軽いWebブラウジングの後、マウス/ディスプレイ/キーボードがフリーズします。約1分後、マシンが自発的に再起動します。再起動後のクラッシュレポートでは、4つすべてで「進行中のウォッチドッグ」イベントが報告されましたケース)

幸い、最初に試みたのは、VM圧縮を再度有効にすることでした(vm_compressor=4)。ヨセミテを使用してから最初の約90分間で4回のクラッシュが発生した後、4日間はクラッシュが発生していません。

だから私は確認できます:vm_compressor=1ヨセミテの前に機能しているように見えた設定は、今やクラッシュバギーのようです。この値にMavericks以上の実際のデフォルトvm_compressor=4( 'VM_PAGER_COMPRESSOR_WITH_SWAP')を使用すると修正されるようです。


1
vm_compressor=1boot-argとrebootはOS X 10.9 Mavericksで機能し、OS X 10.10 Yosemiteでは機能しません。知りたいのですが、OS X 10.11 El Capitanで機能しますか?
アルバート

1
vm_compressor=1OS X 10.12 Sierra以降、カーネル内にvm_compressor=1自動的に変換されるほど悪かったvm_compressor=4この回答を参照してください。
Old Pro、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.