O Mac OS X não está criando um arquivo de troca

6

Recentemente, comecei a ter muitos problemas de memória no meu Mac executando o High Sierra. Em vez de a janela forçar o encerramento aparecer, meu sistema congelaria completamente e a única maneira de recuperar é forçar uma reinicialização.

Após algumas investigações, descobri que meu sistema não está criando nenhum arquivo de troca, mesmo quando a pressão da memória é crítica. Não há nada no /private/var/vm/diretório

Eu já tentei sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist.

Existe alguma outra maneira de ativar a troca? Ou para executar alguns diagnósticos?

Detalhes adicionais:

Estou inicializando a partir de um SSD Thunderbolt externo (não sei se essa é a causa).

Abaixo está a saída de vm_stat. Se eu fizer algo com muita memória nesse estágio, meu sistema congelará.

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.

Editar:

Mais alguns detalhes:

Esta é a saída 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

E a saída 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)

Solução (atualizada): são sugeridas várias boas soluções. Depois de revisar o problema novamente, eu recomendaria a solução do lint abaixo. É a maneira mais geral de explicar as alterações nos nomes dos volumes.

kayoz
fonte
Procure neste tópico uma explicação sobre o que fazer: apple.stackexchange.com/questions/126669/…
LexS
@ Lexs, obrigado pela sua resposta, mas não acho que esse tópico contenha algo relacionado ao meu problema? Ou eu estou esquecendo de alguma coisa?
kayoz

Respostas:

4

Eu tive o mesmo problema ao executar o High Sierra (e o Mojave desde) em um SSD externo. Eu não tentei a sugestão de Glorfindel para limpar o disco no Sierra no HFS + antes de restaurar no High Sierra, o que parece muito trabalhoso.

No entanto, tenho usado meu próprio daemon de lançamento com um script bash desde janeiro, semelhante à solução de chrisgooley; no entanto, meu script também verifica qual ID de volume montar. Pensei em compartilhar minha solução com a verificação dinâmica do ID do volume correto.

Inicialmente, eu codifiquei o ID do volume também, mas isso era problemático porque, sempre que o sistema inicializava com unidades adicionais conectadas, o ID do volume mudava, o volume de troca falha na montagem.

Meu script e daemon estão abaixo:

mountvm.sh

#!/bin/bash
# Mount the APFS VM volume if it isn't already mounted

VM_VOLUME=$(/usr/sbin/diskutil list | grep "VM" | awk '{ print $7 }') 
# echo "VM Volume is $VM_VOLUME"
for i in {1..5}
do
    if [ ! -e /private/var/vm/sleepimage ]
    then
#       echo "$(date "+%a %d/%m/%Y %I:%M:%S%p") > VM volume not yet mounted..."
#       echo -n "$(date "+%a %d/%m/%Y %I:%M:%S%p") > "
        /usr/sbin/diskutil mount -mountPoint /private/var/vm/ $VM_VOLUME
        break
    else
#       echo "$(date "+%a %d/%m/%Y %I:%M:%S%p") > VM volume already mounted..."
        if [ $i -lt 6 ]
        then
#           echo -n "$(date "+%a %d/%m/%Y %I:%M:%S%p") > Confirming in "
            for count in {2..1}
            do
#               echo -n "$count min..."
                sleep 60
            done
            echo
        fi
    fi
done

exit 0

com.local.mountvm.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.local.mountvm</string>
    <key>ProgramArguments</key>
    <array>
        <string>[/path/to/script]/mountvm.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Algumas notas:

Mude o [/ path / to / script] no plist para onde quer que você coloque o script bash.

Remova o # nas linhas de eco no script bash para solucionar problemas (você precisará executar o script no Terminal com sudo ou especificar um caminho stdout no plist).

O script verifica se / private / var / vm / sleepimage existe. Caso contrário, o volume de troca não será montado e tentará montar o volume correto. Caso isso aconteça, ele verifica novamente mais quatro vezes em intervalos de dois minutos antes de sair. A razão pela qual adicionei isso foi porque descobri que, se simplesmente tentasse montar o volume assim que o daemon fosse carregado, ele falharia.

cotão
fonte
6

Eu tive o mesmo problema ao instalar o High Sierra no SSD externo.

Volume disk3s4 647DA4A9-7E85-4523-A4D2-F0392D3789D4
        ---------------------------------------------------
        APFS Volume Disk (Role):   disk3s4 (VM)
        Name:                      VM (Case-insensitive)
        Mount Point:               Not Mounted
        Capacity Consumed:         4294987776 B (4.3 GB)
        FileVault:                 No

Solução :

  1. Crie um arquivo plist como usuário root e coloque-o na /Library/LaunchDaemons/pasta Ele deve ser escrito em notação de domínio reverso como esta:

    /Library/LaunchDaemons/local.mountdisk3s4.plist
    
  2. Basta copiar esses dados xml no seu arquivo plist e alterar o nome do volume da VM do APFS com o seu.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
         <key>Label</key>
         <string>THE NAME OF FILE</string>
         <key>ProgramArguments</key>
         <array>
              <string>/sbin/mount_apfs</string>
              <string>YOUR APFS VOLUME</string>
              <string>/private/var/vm</string>
         </array>
         <key>KeepAlive</key>
         <dict>
        <key>SuccessfulExit</key>
        <false/>
         </dict>    
    </dict>
    </plist>
    

    No meu caso, fica assim:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
         <key>Label</key>
         <string>local.mountdisk3s4</string>
         <key>ProgramArguments</key>
         <array>
              <string>/sbin/mount_apfs</string>
              <string>disk3s4</string>
              <string>/private/var/vm</string>
         </array>
         <key>KeepAlive</key>
         <dict>
        <key>SuccessfulExit</key>
        <false/>
         </dict>    
    </dict>
    </plist>
    
  3. Reinicie o seu Mac

Michael Golban
fonte
3

O volume APFS da VM dedicado não está montado corretamente:

+-> 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

Ele deve ser montado no ponto de montagem / private / var / vm.

Entrar mountno Terminal deve revelar algo como:

...
/dev/disk4s4 on /private/var/vm (apfs, local, noexec, journaled, noatime, nobrowse)
...

O motivo não é claro. Pelo menos alguns arquivos de troca foram criados no passado porque 2,1 GB (= dois arquivos de troca à 1 GiB) são consumidos pela VM.


Uma solução temporária é especificar outro diretório de arquivo de troca. Após incapacitante SIP , isto pode ser conseguido através da modificação do ficheiro /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist com sudo nano ...ou LaunchControl .

Original:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>Label</key>
    <string>com.apple.dynamic_pager</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>POSIXSpawnType</key>
    <string>Interactive</string>
    <key>ProgramArguments</key>
    <array>
        <string>/sbin/dynamic_pager</string>
    </array>
</dict>
</plist>

Mod:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>Label</key>
    <string>com.apple.dynamic_pager</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>POSIXSpawnType</key>
    <string>Interactive</string>
    <key>ProgramArguments</key>
    <array>
        <string>/sbin/dynamic_pager</string>
        <string>-F</string>
        <string>/vm/swapfile</string>
    </array>
</dict>
</plist>

Se o diretório / vm não existir, crie-o:

sudo mkdir /vm
sudo chmod 755 /vm

Reinicie o seu Mac depois. Ative o SIP novamente!


Na minha opinião, isso está relacionado à atualização suplementar 10.13.3. Pelo menos nas minhas várias VMs High Sierra VMs / vm adicionais foram criadas - cada uma contendo um arquivo de troca abandonado0. O diretório de troca real é / private / var / vm -> disk1s4 (volume da VM do APFS) - testado sudo memory_pressure -l criticalno Terminal.

Eu tenho que investigar mais isso.


Para realmente resolver o problema, remover e adicionar novamente o volume APFS da VM de alguma forma quebrado deve ajudar:

  • Restaure o arquivo com.apple.dynamic_pager.plist padrão
  • Verifique se a pasta / private / var / vm existe
  • Inicialize no modo de recuperação High Sierra
  • Abra o Terminal na barra de menu> Utilitários e entre diskutil ap listpara obter os detalhes do APFS
  • Remova o volume da VM do APFS:

    diskutil ap deleteVolume <av_vmUUID> #<av_vmUUID>: UUID of the APFS Volume with the VM role
    

    No seu caso, av_vmUUID é 5DE0EA6B-CA57-4226-B038-2E256FCC5B98, portanto:

    diskutil ap deleteVolume 5DE0EA6B-CA57-4226-B038-2E256FCC5B98
    
  • Adicione um volume de VM do APFS:

    diskutil ap addVolume diskX APFS VM -mountpoint /private/var/vm -role V
    

    with diskX: Referência do contêiner APFS do contêiner com o UUID 6BE5FDB5-A68F-4CBF-A404-68AE73E61C10 mostrado no diskutil ap list(provavelmente disco3, disco4 ou disco5)

    O volume será criado, mas não será montado porque o ponto de montagem especificado não existe no sistema básico do Modo de recuperação!

  • Reinicie o seu Mac e verifique primeiro se a VM está montada em / private / var / vm mount. O teste com sudo memory_pressure -l critical.
Klanomath
fonte
Obrigado pela resposta detalhada, mas infelizmente isso ainda não está funcionando para mim. Não há nada na minha pasta / vm / depois de aplicar isso e reiniciar. Eu tentei o teste de memory_pressure e nenhuma troca estava sendo criada. Notei que eu continuava recebendo um log "vm_swap_create_file falhou em XXX segundos" no console. E o disco vm ainda está aparecendo como desmontado.
kayoz
@kayoz Adicionada uma solução possível
klanomath 16/03
Obrigado novamente por todo o tempo que você dedicou para me ajudar a resolver isso. Infelizmente, a remoção e criação do volume da VM ainda não funciona. Após recriar o volume, seu tamanho foi reduzido para 20 KB. Quando eu reinicio no modo normal, o volume volta para 2 GB e permanece desmontado.
kayoz
@kayoz Eu tento encontrar outra solução! Você usou algum hack no passado para mover a VM para outro volume? Ou o disco TB contém um sistema HighSierra "novo" (= nenhum sistema atualizado)?
klanomath
Eu nunca toquei no material da VM antes. O disco TB não possui um sistema novo. Costumava ser o Sierra, que foi atualizado para o High Sierra. Originalmente, eu migrei meu sistema para o disco TB por meio de um backup da máquina do tempo.
kayoz
1

Eu tenho o mesmo problema após a atualização. Minha maneira é simplesmente apagar o contêiner APFS e usar o Time Machine para restaurar o Sierra com HFS + e restaurar o High Sierra com partições APFS. Abaixo estão minhas configurações que o fazem funcionar.

MacBook-Pro:~ root# diskutil apfs list
APFS Container (1 found)
|
+-- Container disk1 96CC8155-6433-4240-B445-3E909F80E1CF
    ====================================================
    APFS Container Reference:     disk1
    Capacity Ceiling (Size):      250790436864 B (250.8 GB)
    Capacity In Use By Volumes:   221076267008 B (221.1 GB) (88.2% used)
    Capacity Available:           29714169856 B (29.7 GB) (11.8% free)
    |
    +-< Physical Store disk0s2 0D0BAEFE-FBC0-496D-9260-5F2A5D6B0793
    |   -----------------------------------------------------------
    |   APFS Physical Store Disk:   disk0s2
    |   Size:                       250790436864 B (250.8 GB)
    |
    +-> Volume disk1s1 5AA2CDA5-EAD1-4D9C-BEE0-E85957526A37
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk1s1 (No specific role)
    |   Name:                      Macintosh HD (Case-insensitive)
    |   Mount Point:               /
    |   Capacity Consumed:         218261549056 B (218.3 GB)
    |   FileVault:                 No
    |
    +-> Volume disk1s2 4BC0480C-2FED-4B48-A3A5-5E133B707776
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk1s2 (Preboot)
    |   Name:                      Preboot (Case-insensitive)
    |   Mount Point:               Not Mounted
    |   Capacity Consumed:         19046400 B (19.0 MB)
    |   FileVault:                 No
    |
    +-> Volume disk1s3 DF8D07CD-27C0-4EB2-A939-2D3E2E64EB66
    |   ---------------------------------------------------
    |   APFS Volume Disk (Role):   disk1s3 (Recovery)
    |   Name:                      Recovery (Case-insensitive)
    |   Mount Point:               Not Mounted
    |   Capacity Consumed:         509820928 B (509.8 MB)
    |   FileVault:                 No
    |
    +-> Volume disk1s4 27BDB6EB-9BE8-417E-8B03-D2C03E64DD30
        ---------------------------------------------------
        APFS Volume Disk (Role):   disk1s4 (VM)
        Name:                      VM (Case-insensitive)
        Mount Point:               /private/var/vm
        Capacity Consumed:         2147504128 B (2.1 GB)
        FileVault:                 No
MacBook-Pro:~ root# 
MacBook-Pro:~ root# 
MacBook-Pro:~ root# diskutil mount -mountPoint /private/var/vm disk1s4
Volume VM on disk1s4 mounted
MacBook-Pro:~ root# 


MacBook-Pro:~ root# vi /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
MacBook-Pro:~ root# cat /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>Label</key>
    <string>com.apple.dynamic_pager</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>POSIXSpawnType</key>
    <string>Interactive</string>
    <key>ProgramArguments</key>
    <array>
        <string>/sbin/dynamic_pager</string>
                <string>-F</string>
                <string>/private/var/vm/swapfile</string>
    </array>
</dict>
</plist>
MacBook-Pro:~ root# ls -l /sbin/dynamic_pager
-rwxr-xr-x  1 root  wheel  43920  1 19 16:32 /sbin/dynamic_pager
MacBook-Pro:~ root# ls -l /private/var/vm/swapfile*
-rw-------  1 root  wheel  1073741824  3 28 00:36 /private/var/vm/swapfile0
Chang-Han Huang
fonte
Vejo que você tentou editar sua resposta, mas o sistema não o reconheceu. Por favor, crie uma conta e pedir através do Fale Conosco formulário para que ele se fundiu com o antigo.
Glorfindel
1

Eu tenho exatamente os mesmos sintomas. Eu instalei o High Sierra 10.13.4 em um SSD externo de Thunderbolt APFS recém-formatado. O Activity Monitor não mostra espaço de troca e diskutil apfs listmostra que a partição da VM não está montada, exatamente como acima. Tenho pânico repetido quando a memória está acabando (meu computador possui apenas 4 GB de RAM).

Minha solução, que ainda não testei, é criar um Carbon Copy Clone do disco externo, depois apagá-lo e reformatá-lo (usando o comando "Partição" do Disk Utility) como Mac OS Extended (Journaled) e restaurar usando o CCC. Isso deve me devolver minha VM.

Alan Harper
fonte
1

Corri para esse problema quando atualizei para o Mojave. Meu sistema operacional está instalado em um SSD externo. Minha correção acabou sendo semelhante à de Michael Golban, mas eu precisava de um comando extra.

Acabei escrevendo um pequeno script bash e carregando-o com um LaunchDaemon.

/usr/local/sbin/mount_swap.sh

#!/bin/bash
/sbin/mount_apfs disk3s4 /private/var/vm
diskutil mount -mountPoint /private/var/vm disk3s4

com.local.mountswap.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     <key>Label</key>
     <string>com.local.mountswap</string>
     <key>ProgramArguments</key>
     <array>
          <string>/usr/local/sbin/mount_swap.sh</string>
     </array>
     <key>KeepAlive</key>
     <dict>
    <key>SuccessfulExit</key>
    <false/>
     </dict>
</dict>
</plist>

Assim que esses comandos foram executados durante o teste, a linha "Trocar Usado" no Monitor de Atividade começaria a mostrar valores positivos.

chrisgooley
fonte
0

Também estou nessa situação, inicializando a partir de um SSD Samsung T5 conectado a USB3. Eu tentei a solução do fiapo, no entanto, no meu caso, o comando

/usr/sbin/diskutil list | grep "VM" | awk '{ print $7 }'

gera duas respostas, pois o disco rígido interno e o SSD externo contêm uma partição de troca (VM). Não consigo encontrar uma solução para esse problema (automatizando o processo de montagem na inicialização), então alguém pode ajudar?


[Pinetops] Estranhamente, não posso adicionar um comentário, por isso editarei sua "resposta". Eu estava em uma situação semelhante (macOS Mojave inicializando em um SSD Samsung T5 de 1GB). Também vejo duas respostas ao executar o diskutilcomando acima , então acho que a resposta do lint não funcionará para mim (além disso, vejo um arquivo nomeado /private/var/vm/sleepimagemesmo que a VM não esteja montada). No entanto, tentei a resposta de Michael Golban e funcionou com o mínimo esforço. Primeiro, tive que descobrir qual VM deveria ser montada ao inicializar o SSD da Samsung. Fiz isso com o seguinte comando e depois olhei para ver em que disco estava montado /.

/usr/sbin/diskutil ap list

O resultado relevante para mim foi:

+-> Volume disk5s1 14706492-442E-3E44-84D8-C3A216EAB040
|   ---------------------------------------------------
|   APFS Volume Disk (Role):   disk5s1 (No specific role)
|   Name:                      Ext macOS (Case-insensitive)
|   Mount Point:               /
|   Capacity Consumed:         417911861248 B (417.9 GB)
|   FileVault:                 No

Então agora eu sei que a VM deve estar no disco5. Eu olho mais abaixo na saída de diskutile vejo:

+-> Volume disk5s4 8FF45FA5-EDB8-4812-947A-C1163BBDF5C4
    ---------------------------------------------------
    APFS Volume Disk (Role):   disk5s4 (VM)
    Name:                      VM (Case-insensitive)
    Mount Point:               Not Mounted
    Capacity Consumed:         10737463296 B (10.7 GB)
    FileVault:                 No

Viola! Ele deve montar o disk5s4 como espaço de troca. Então, eu segui a resposta de Michael Golban, substituindo em disk5s4todos os lugares que ele usou disk3s4em seu exemplo específico. Após uma reinicialização, diskutil ap listmostra que disk5s4está montado corretamente.

+-> Volume disk5s4 8FF45FA5-EDB8-4812-947A-C1163BBDF5C4
    ---------------------------------------------------
    APFS Volume Disk (Role):   disk5s4 (VM)
    Name:                      VM (Case-insensitive)
    Mount Point:               /private/var/vm
    Capacity Consumed:         10737463296 B (10.7 GB)
    FileVault:                 No

Além disso, vm_statmostra valores diferentes de 0 para Swapins e Swapouts.

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                               15355.
Pages active:                           1504355.
Pages inactive:                         1006398.
Pages speculative:                       593600.
Pages throttled:                              0.
Pages wired down:                        695931.
Pages purgeable:                         217108.
"Translation faults":                  20908140.
Pages copy-on-write:                     566900.
Pages zero filled:                     14492420.
Pages reactivated:                      1136316.
Pages purged:                            693655.
File-backed pages:                      1424716.
Anonymous pages:                        1679637.
Pages stored in compressor:             1427995.
Pages occupied by compressor:            378113.
Decompressions:                          426681.
Compressions:                           3751860.
Pageins:                                2715810.
Pageouts:                                 14437.
Swapins:                                 438359.
Swapouts:                                917646.
Hans-Göran Puke
fonte
0

Eu tive uma experiência semelhante, mas minha configuração é um pouco incomum. Eu tenho:

  1. Originalmente, um Fusion Drive (128SSD + 1TBHDD), que troquei o HDD por um SSD de terceiros (Crucial MX500 (1TB)). E sim, recriei a unidade Fusion após a troca. Então, agora estou de volta ao Fusion Drive original de 1,2 TB, mas composto por dois SSDs (ambos APFS).
  2. Um pouco mais de RAM do que a maioria dos sistemas, com 32 GB (originalmente 16 GB, atualizado para 32 GB).
  3. Três unidades externas, 2 SSDs conectadas via USB 3.0 (AKA 3.1v1), uma de 500 GB (APFS) e outra de 256 GB (HFS +), e a terceira unidade é um HDD regular de 3 TB (HFS +), também conectado pela mesma Barramento USB.
  4. Executando o Mojave.

Agora, aqui é onde / quando o problema apareceu: decidi converter o SSD de 256 GB em APFS. A conversão correu bem. Sem problemas. NO ENTANTO, assim que isso terminou, minha ferramenta de monitoramento (iStat) começou a mostrar uma unidade extra chamada "VM". Eu suspeitava ... Também único no meu caso: eu executo máquinas virtuais usando o Parallels. Como eu disse, fiquei curioso para saber o que esta nova unidade denominada VM estava fazendo no meu menu do iStat ... Continuei bisbilhotando e percebi que esse deveria ser o arquivo de troca. Abri o Activity Monitor e, para minha surpresa, minha memória estava quase no máximo, e o valor do arquivo de troca estava lendo 0, o que NÃO está correto. O OS X deve começar a paginar as coisas na unidade de troca, em vez de ficar sem memória.

Fiquei convencido de que o sistema operacional está faltando alguma coisa quando converte um volume em APFS e que bastava reiniciar para colocar as coisas em ordem novamente. Bem, no meu caso, isso funcionou. Após a reinicialização, o sistema começou a paginar de volta para o arquivo de troca como deveria, e o iStat não mostrou mais a unidade "misteriosa" da VM. E todas as minhas unidades estavam em suas respectivas versões corretas do sistema de arquivos.

Desculpa. Eu sei que isso provavelmente não ajuda a resolver a questão original, mas pode lançar alguma luz sobre o funcionamento interno do problema.

Seja bem pessoal, Rapha.

rferreira.dba
fonte
-1

O Mac OSX High Sierra é um tipo de derivado do Linux, e muitos SOs Linux recomendam desativar a troca ao instalar em um SSD, pois o tipo de armazenamento usado em uma partição de troca sobrecarrega a mídia magnética do SSD de uma maneira potencialmente destrutiva. Então, eu acho que o High Sierra desabilita o espaço de troca nos ssds como padrão. Minha opção preferida é instalar o espaço de troca em uma unidade tradicional separada.

https://askubuntu.com/questions/652337/why-no-swap-partitions-on-ssd-drives

molhar o gorila
fonte
11
MacOS não é um derivado do Linux - De fato, o design básico é anterior ao Linux. Sua troca é bem diferente - também a troca no disco rígido, em vez do SSDS, diminuirá enormemente o sistema.
Mark
Eu concordo com o Miller, que não é aconselhável trocar o SSD principal. A troca em qualquer sistema UNIX é volátil e as gravações constantes acabam causando problemas com o SSD e os setores precisam ser remapeados devido à falha na mídia magnética. E se o disco falhar, seu sistema não inicializará. Um SSD não primário para troca seria definitivamente muito mais rápido que um disco externo tradicional baseado em prato e seria o caminho a percorrer.
john
Quanto ao linux <-> macOS, discussão Chicken / egg: são todos derivados do AT&T Unix de Dennis Ritchie. en.wikipedia.org/wiki/Unix
john