Me deparei com um tópico sobre a instalação de uma unidade SSD no MacBook Pro.
Alguém nos comentários também recomendou desativar o arquivo de troca, mas não disse o porquê:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*
Eu me pergunto por que alguém iria querer desativar o arquivo de troca no Mac OS X.
Isso aumenta o desempenho? Estabilidade?
Alguma desvantagem?
Finalmente, faz algum sentido desativar o arquivo de permuta quando não estiver usando o SSD?
Respostas:
Suponho que as pessoas fariam isso por uma unidade SSD porque essas unidades não têm a mesma vida útil que as unidades de disco giratório magnético padrão. Há um número mais limitado de ciclos de gravação, portanto, presumivelmente, usá-los com um arquivo de troca usaria esses ciclos mais rapidamente.
Se você tem muita RAM, isso pode acelerar o desempenho, mas geralmente não é uma boa ideia . Se você correr contra o teto da memória, as coisas ficarão esquisitas.
Além disso, a memória com fio não é liberada quando se torna inválida, é liberada somente quando um evento de saída de página é acionado, o que não ocorrerá se a Memória Virtual estiver desativada. Portanto, não demorará muito para que toda a sua memória seja absorvida, mesmo que não seja mais usada.
fonte
A razão pela qual eles desabilitaram o arquivo de troca é provavelmente uma paranóia sobre SSDs com um número máximo de gravações por bloco. Os arquivos de troca podem ser gravados com frequência, possivelmente causando fragmentação do disco (bem como fragmentação do sistema de arquivos) e, eventualmente, possivelmente causando falha no disco mais cedo.
Dito isto, esse é definitivamente um caso de otimização prematura. É quase sempre uma HORRÍVEL , HORRÍVEL idéia para desativar o arquivo de swap. O arquivo de troca existe para quando os programas em execução consomem mais memória do que você instalou fisicamente. Se você desabilitá-lo, poderá não conseguir executar tantos programas ao mesmo tempo (e o limite é muito menor do que o esperado) ou poderá ter problemas (como congelar e ter que reiniciar a máquina) ao você fica sem memória.
O último que experimentei (com o arquivo de troca ativado) ao ficar sem espaço em disco. Eu tinha uma unidade de 120 GB com ~ 3 GB de graça. Enquanto jogava Civilization IV (um jogo grande em tela cheia), o sistema ficou sem espaço no disco rígido (~ 50 megas livres) e apresentou a janela "kill apps now". Isso estava escondido atrás do jogo em tela cheia, então o sistema travou. Se eu não tivesse conseguido conectar-me de outro Mac para matar vários aplicativos remotamente, teria que pressionar o botão liga / desliga.
fonte
Você tem duas ótimas respostas que explicam por que essa é uma má idéia em quase todos os casos em que o sistema pode gravar em um dispositivo de armazenamento.
A razão pela qual você pode desativar a troca é para que o sistema possa ser executado em mídia somente leitura, como CD, DVD, imagem de rede bloqueada usando o NetBoot ou um fob USB somente leitura, como o novo instalador ou fob de recuperação da Lion, que é fornecido com alguns macs que não possuem recursos ópticos unidades.
Ter memória virtual significa que o sistema pode executar substancialmente mais rápido e usar menos RAM quando muitos programas usam o mesmo código de biblioteca comum. Cada programa pensa que possui uma cópia privada de todo o código necessário, mas quando existe memória virtual, o sistema possui uma boa maneira de mapear a mesma RAM física para diferentes programas.
A desativação da troca impede que o mac use uma pequena parte da sua unidade como cache para alguma memória calculada, mas o programa não foi inteligente o suficiente para gravar esses resultados em um cache adequado.
Se você tem um backup e tempo para experimentar, por que não desativá-lo e ver como a sua experiência muda.
Eu manteria minha troca mesmo que soubesse com certeza que tinha que pagar por uma nova unidade anualmente. A velocidade que essa troca me dá é ENORME. Nem sempre é assim e, às vezes, quando o sistema está debulhando ou paginando - você pode ter o oposto. Muitas pessoas optam por executar sem troca para obter um erro de alocação de memória em vez de deixar o mac iniciar a paginação, pois isso pode desacelerar a máquina quando as coisas não estão funcionando normalmente.
O seu caso com um SSD pode ser diferente, informe-nos se você tentar.
fonte
dynamic_pager
, doze segundos sem. Para uma comparação mais ampla e mais medida, podemos usar o Phoronix Test Suite ou o Geekbench .Eu serei o mais pessimista aqui: desabilitei a troca no meu macbook pro de unibody no final de 2008 e melhorou notavelmente o desempenho: Menos espera, troca mais rápida entre aplicativos.
Lembre-se, eu fico de olho na minha memória livre e tenho 6 GB instalados. Nas poucas vezes em que atingi o limite de memória, o sistema travou :-D
No meu novo MacBook Air, eu nem sonharia em desativar a troca, já é rápido com ele ativado e só tem 4 GB para começar.
Outro bom motivo para as pessoas desabilitarem a troca em um SSD é porque elas recebem SSDs minúsculas e precisam de todo o espaço possível. De qualquer forma, não faça isso.
fonte
Minha experiência é semelhante à do w00t. Desativei o arquivo de troca no SL e no Lion porque o aumento de desempenho funciona para mim. O uso com fio fica fora de controle após uma semana ou mais, mas uma simples reinicialização corrige isso. Eu não tenho um SSD, mas um disco lento de 5400 rpm. A expectativa de vida útil do SSD não é tão ruim quanto as pessoas tentam fazê-lo. Se você está fazendo isso simplesmente porque tem medo de desgastar seu SSD, consulte: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd / 2 e http://communities.intel.com/thread/21717?tstart=0 A Intel classifica suas unidades por mais de 20 GB por dia, todos os dias, por até 5 anos em uma unidade de 80 gb. Unidades de tamanho maior duram ainda mais. O usuário médio nem usa 10 GB / dia.
Monitoro meu uso de memória de 4 GB com os menus do iStat e uso um script do Automator com o comando bash "purge" (requer a instalação do Xcode) para limpar a memória inativa e abrir mais memória livre com freqüência. Nas poucas vezes em que aplicativos com vazamento de memória usam toda a RAM, tive que fazer uma reinicialização total. As raras ocasiões em que isso aconteceu e a velocidade em geral fazem valer a pena manter o arquivo de troca desativado para mim. Percebo que não posso ter tantos aplicativos abertos ao mesmo tempo por causa disso, conforme declarado por outros, mas sou capaz de trabalhar com isso.
fonte
Apenas jogando meus 2 centavos para aqueles que desejam desativar a troca POR CAUSA de pequenos SSDs: a imagem do sono usa muito mais espaço em disco.
E, para aqueles preocupados com a vida limitada do SSD (principalmente aqueles com MBA e chips SSD com fio que NÃO PODEM ser substituídos), se o computador dorme muitas vezes por dia, a reescrita da imagem do sono pode ser uma preocupação. Meu laptop dorme meia dúzia de vezes / dia com facilidade. Isso grava 48 GB de dados no meu SSD diariamente.
A solução em cada caso é desativar a hibernação e excluir o arquivo sleepimage que é tão grande quanto a RAM instalada (8 GB no meu caso).
O risco de desvantagem: se a bateria acabar enquanto o laptop estiver em suspensão, seu estado atual será perdido. Isso será equivalente a uma reinicialização forçada. Nenhum dano físico ao laptop, apenas uma perda de produtividade. Se você desativar a hibernação, deixe a bateria fraca e não poderá carregar, basta ter o código à mão para ativar a hibernação!
Para desativar a hibernação, no Terminal, o comando é o seguinte:
Para habilitar a hibernação, o comando é o seguinte:
Para excluir a última imagem inativa para liberar espaço no SSD / HDD (só faz sentido se você desativar a hibernação, caso contrário, uma nova ocupará esse espaço na próxima vez que o computador dormir):
Fonte: man pmset
fonte
Desativando troca faz aumentar o desempenho. Por exemplo, eu uso regularmente o Aperture e, quando a troca aumenta o desempenho, piora e, quando ultrapassa 1Gb, tenho que reiniciar o SO para limpá-lo e restaurar o desempenho. Nota: a máquina possui 6 GB de RAM e NÃO está ocupada, cerca de 3 GB são gratuitos, mas a troca 1G diminui significativamente o desempenho.
fonte
Estive desativando o swap em máquinas por muitos anos, tanto no OS X quanto em outras variantes do UNIX.
Uso uma ferramenta para me alertar quando a memória está acabando e nunca me preocupo com o travamento do sistema.
Meu iMac tem 12 GB e, com a troca desativada, quase sempre tenho 4 GB gratuitos, mesmo com várias ferramentas de desenvolvimento, aplicativos, navegadores etc. abertos
fonte
O padrão de repetição aqui é o seguinte:
Aqueles que desabilitaram o arquivo de troca tiveram um desempenho aprimorado (com RAM física suficiente)
Aqueles que NÃO desativaram o espaço de troca estão certos de que não funcionará, e algo terrível acontecerá, e estão avisando ardentemente que você não o faça.
Isso se deve simplesmente a duas coisas:
fonte
Apenas uma experiência pessoal.
Uma observação rápida: se o seu Mac usa gráficos integrados, sua memória é compartilhada com a memória principal com o kernel_task. Assim, você terá que subtrair esse valor do seu total utilizável.
Usuários de SSDs, é gratificante ter mais espaço, mas é importante saber que a memória virtual prospera nos SSDs; você pode obter muito ganho de desempenho com isso. Dói o SSD? Sim, mas você substituirá o seu Mac por muito tempo antes de perceber.
fonte
Sumário executivo
Uma área de troca (chamada partição de troca, arquivo de troca ou arquivo de paginação) é apenas um mecanismo para aumentar a memória física endereçável pelo sistema operacional.
Se você tem pouca RAM física disponível e na máquina de hoje, eu diria se você tem 4 GB ou menos de RAM. Então você provavelmente deve ter uma troca. Mas isso depende da sua carga de trabalho e de como você usa sua máquina.
Se você tiver mais de 4 GB de RAM, há uma boa chance de que seu sistema nunca use a troca. Portanto, se a troca for ativada ou não, isso não mudará muito.
Embora isso dependa de outros fatores, quanto mais tempo sua máquina estiver em execução, maior será a probabilidade de o sistema operacional trocar uma pequena parte da RAM não utilizada da memória RAM pelo evento de troca, embora ainda haja muito espaço aparentemente. No entanto, geralmente o sistema usa a RAM "livre" para buffers de arquivo e outras coisas, e alguma carga de trabalho pode fazer com que o buffer do arquivo use toda a RAM disponível.
Informações básicas
De qualquer forma, o que aconteceria se você desabilitasse a troca e sua memória fosse completamente usada? Bem, na próxima vez que um aplicativo solicitar mais memória (como em um malloc ou realloc), ele receberá um erro! Se estiver codificado corretamente, o aplicativo irá detectá-lo, mas lidar com esse erro e encerrar o programa normalmente ainda pode ser um desafio! No entanto, muitos desenvolvedores não testam a alocação de memória bem-sucedida e, freqüentemente, o aplicativo falha assim que essa memória não alocada será usada. Portanto, há uma forte chance de o aplicativo travar e, na verdade, muitos aplicativos travarem porque você tem mais de um aplicativo em execução ao mesmo tempo. Felizmente, o próprio kernel deve estar imune, mas na minha experiência nem sempre foi o caso.
Se você trocar, você terá o mesmo comportamento , mas como o limite é maior, é provável que você não atinja esse limite.
Tenho pessoalmente 2 máquinas com 8 e 16 GB de RAM. Meu uso pessoal dessa máquina nunca deve me aproximar de usar toda essa RAM (hoje! Talvez daqui a alguns anos isso possa ser diferente). A única razão pela qual atingi os limites físicos da RAM é que um processo ficou desonesto e está consumindo toda a RAM. Não ter trocas é um alívio, o kernel acabará prontamente com o processo invasor assim que atingir o limite de RAM. Se você trocar, você terá uma experiência dolorosa (talvez não no SSD ...), pois seu sistema trocará, trocará e trocará e, às vezes, ficará totalmente sem resposta até que, esperançosamente, seu kernel mate o culpado!
Aconselha
Você não deve se assustar com as pessoas dizendo que algo terrivelmente errado pode acontecer se você remover o swap. Se você fizer isso, seu espaço de endereço físico será reduzido, como se você passasse de 4 GB de RAM para 2 GB. Você faria uma coisa dessas? Então você não deve remover a troca. Você pode, no entanto, decidir limitá-lo, e isso seria sensato .
Se alguém achar que sua carga de trabalho o levará a usar perto ou mais do que a RAM física disponível, ou se precisar de muita E / S (leitura / gravação em discos), a troca deverá ser mantida.
Quando a troca deve ser mantida, o usuário deve tentar definir limites para a quantidade de memória que um processo pode usar. Em um sistema Linux, pode-se usar limites de memória do cgroups para evitar que algum processo fique fora de controle. Não sei o equivalente no OS X, mas esse deve ser o caminho.
No entanto, se alguém tiver mais do que suficiente memória disponível para sua carga de trabalho, ele poderá desativar com segurança o swap ou mantê-lo. Isso não muda muito, mesmo em termos de desempenho, porque se o sistema não usar a troca, você não será atingido por uma queda no desempenho (especialmente visível em um disco rígido rotatório antigo, menos no SSD).
Usar o mesmo truque acima para tentar definir limites de memória por processo ou grupo de processos também é beneficiário no caso de mais de RAM disponível disponível.
Meu próprio exemplo
Eu tenho um PC antigo com 1 GB de RAM, aí tenho uma grande troca: 4 GB para que eu possa executar o Firefox e outros aplicativos nele. Eu costumo usar o mínimo de aplicativos (ou guias no Firefox) possível para ter uma experiência correta do usuário.
Eu tenho um pequeno servidor com 8 GB de RAM. Lá eu sei exatamente minha carga de trabalho e não quero que meu servidor fique lento porque um processo ficou desonesto e consome toda a memória. Lá, eu não tenho nenhum limite de troca e memória de grupo de imposição de barreira, para que aplicativos ou serviços possam travar, mas não o kernel. Btw, esta é uma máquina Linux.
Então, eu tenho meu Mac com 16 GB de RAM. Eu não sou o único usuário e não nos importamos em esperar ao mudar de usuário. Lá nós trocamos, é difícil para mim planejar a carga de trabalho de outros usuários deste computador. Mesmo se eu fosse o único eu usaria swap. Costumo executar várias VMs e usar aplicativos que consomem memória, mas não todos ao mesmo tempo, por isso não me importaria em trocar o SO em um aplicativo não utilizado para que eu possa obter uma E / S de disco mais rápida ou iniciar outra VM. Até agora, eu não vi essa máquina trocar!
fonte
Acabei de desativar o arquivo de permuta no meu Macbook air de 2011 (4 GB de RAM, 128 GB de SSD) porque estava cansado do arquivo de permuta devorando lentamente todo o espaço restante em HD e tendo que reiniciar. Dessa forma, a ideia é que eu execute apenas menos programas.
Vou ver se isso realmente funciona, ou se terei que reiniciar de qualquer maneira para limpar a memória "Wired", mas por enquanto parece estar funcionando bem. Na única vez em que a memória ficou realmente cheia, o computador ficou mais lento quando o SSD ficou sem memória - mas se recuperou muito mais rápido assim que eu saí dos aplicativos. (E consegui encerrar os aplicativos, o que geralmente não acontece quando o SSD é preenchido).
Vou ver como vai a estabilidade, mas até agora sou um campista feliz. Também me obriga a executar menos aplicativos (e guias do Chrome) por vez, o que é bom para o foco da tarefa.
fonte
O principal motivo para desativar o arquivo de troca não é a velocidade - é o espaço em disco.
Se um usuário é executado rotineiramente dentro de 5 GB de uma unidade completa, a desativação da troca interromperá o incômodo constante de ficar sem espaço; Rotineiramente, acabo com um arquivo de troca de 4 GB ou mais da navegação de rotina.
A melhoria da velocidade é impressionante em máquinas mais antigas; não é tão impressionante em máquinas modernas equipadas com SSD. (No OSX 10.0 em um iMac, o uso de memória virtual reduzia pela metade a velocidade de muitas operações, incluindo a cópia de arquivos entre unidades).
fonte