O que é memória com fio?

55

Estou tentando descobrir o que está usando toda a memória do meu Macbook Pro executando o OS X Lion. Eu tenho 8 GB de memória total. Quando eu encerro todos os programas ativos, exceto o Finder e o Activity Monitor, em seguida, executando uma limpeza de memória (FreeMemory), ele mostra cerca de 5 GB de memória livre, 1 GB de memória ativa e 1,5 de memória com fio. Os documentos de suporte dizem que a Memória com fio está cheia de coisas que "não podem ser movidas para o disco". O que está ocupando toda essa memória? São os processos da barra de menus? Tenho mozy, last.fm, dropbox e rosnado em execução na barra de menus, mas todos aparecem no Activity Manager e não parecem estar usando uma quantidade significativa de memória. Também executo o Parallels, mas ele é completamente desligado, então pensei que todas as suas coisas deveriam ser gravadas em disco. É apenas o Mac OS X usando um pedaço de memória reservado e rotulando-o como "cabeado"?

cisellis
fonte
Vou mesclar as respostas aqui - esse é um ótimo texto alternativo para a pergunta, para que as pessoas encontrem nossa pergunta principal sobre o que é memória com fio.
bmike

Respostas:

46

Pelo que sei, a memória com fio pertence ao kernel, o núcleo mais interno do Mac OS X. São muitas camadas removidas dos ícones na barra de menus, que são apenas aplicativos comuns, mostrando-se de uma maneira estranha.

A memória com fio é usada para algumas das principais funções do sistema operacional - como controlar todos os aplicativos do sistema, abrir arquivos e conexões de rede ou pedaços de memória usados ​​por vários drivers. As "tabelas de páginas" que formam um mapa da memória do seu sistema também são armazenadas na memória com fio, e um sistema com mais memória precisa de tabelas de páginas maiores. Eu suspeito que a memória usada pelos chips de vídeo integrados na maioria dos Macs também esteja conectada, mas não consigo encontrar nada que diga isso de imediato. De qualquer forma, muitas dessas informações são necessárias para gerenciar e acessar a memória e, portanto, não podem ser trocadas para o disco!

Para entender o porquê, imagine uma enorme biblioteca. Pense, por exemplo, na Bodleian Library da Universidade de Oxford, que possui onze milhões de itens impressos. Não há como você encaixar todas essas coisas em um único prédio - certamente não no meio de um campus universitário.

Então, imagine que os bibliotecários construam um vasto armazém. (A verdadeira Biblioteca Bodleian possui cerca de quarenta sub-bibliotecas de várias descrições, além de armazenamento para livros realmente raros, mas esse é um experimento mental.) A maioria dos livros é mantida no armazém, mas qualquer coisa usada recentemente é mantida no biblioteca. Se você aparecer na biblioteca procurando um livro e ele estiver nas pilhas, poderá lê-lo imediatamente. Caso contrário, peça a um bibliotecário e o livro que você deseja será transportado do armazém e entregue a você no dia seguinte.

As informações na memória com fio seriam coisas como o catálogo de cartões, as chaves dos caminhões de entrega de livros e os mapas da rota para o armazém. Se você armazenou essas coisas no armazém, nunca conseguiu recuperar livros para trazê-los de volta para a biblioteca - para que eles sejam mantidos na biblioteca o tempo todo, para que todo o sistema não funcione.

De qualquer forma, voltando às considerações práticas: a memória com fio é basicamente usada pelo seu computador para contabilidade interna de vários tipos. Você não deve se preocupar com isso.

E não se preocupe se você possui muita memória "inativa" e pouca memória "livre". Memória inativa é basicamente a memória em que o Mac OS mantém alguma chance de ser necessário novamente; se o seu sistema precisar dessa memória para outra coisa, ela será convertida em memória livre sem nenhum impacto no desempenho.

Para estender a metáfora da biblioteca, imagine que a biblioteca mantenha livros que foram usados ​​recentemente nas pilhas. O espaço está lá nas pilhas; não adianta deixá-lo vazio; portanto, é melhor manter os livros que você já tem lá. Não há mal nenhum e, às vezes, alguém poderá pegar um livro imediatamente pelo qual ele teria que esperar.

Da mesma forma, a memória inativa pode apenas acelerar as coisas; não pode danificar o seu computador; portanto, não se preocupe com o fato de estar muito alto.

Realmente, você não deve se preocupar com o uso de memória, a menos que o com fio + ativo comece a se aproximar dos 8 GB no seu computador. É aí que você pode ter problemas, pois é quando o Mac OS começa a consumir espaço em disco para adicionar memória "extra", prejudicando consideravelmente o desempenho.

Caso contrário, você também pode ter algo nessa memória. Por fim, a memória não utilizada é apenas um desperdício de energia - se você a possui, pode usá-la.

Brent Royal-Gordon
fonte
2
A memória inativa só pode acelerar as coisas quando o conjunto de aplicativos usado (e, portanto, deixado na memória inativa) é bastante constante e não varia muito. Se o sistema operacional tiver que paginar algo que está na memória inativa para iniciar um novo aplicativo, isso pode atrasar as coisas. Isso não acontece com frequência, mas vale a pena mencionar.
alesplin
Dizer que a memória inativa só pode ser boa para você é a maior mentira do mundo Mac! Na prática, os computadores Apple não funcionam se você não tiver muita memória inativa. Tente 'limpar' essa memória e todos os seus programas serão interrompidos até que a memória inativa retorne a cerca de 25% da sua RAM total (testada no Mac OS X 10.6 e 10.7). E se o que você diz é verdadeiro para a memória com fio, por que o Mac OS X precisa tanto disso? Meu computador (4 GB) usa constantemente pelo menos 800 MB de memória com fio e 1 GB de memória "inativa". Nada pode explicar isso, mas o design ruim!
22412 PierreBdR #
2
Se o seu Mac usa gráficos integrados (em oposição a um chip gráfico discreto caro e com muita energia), toda a memória usada pela placa gráfica é conectada. Isso por si só tem 384 MB no meu MacBook Air de 13 ". Os controladores Thunderbolt também precisam de muita memória com fio, e eu não ficaria surpreso se os buffers do disco rígido também precisarem. Algumas centenas de megabytes aqui, algumas centenas lá, logo você estará falando de memória real A questão é, é o seu Mac sob pressão de memória Se não for, parar de obsessão sobre Activity monitor e fazer alguma coisa.?.
Brent Royal-Gordon
Apenas para acrescentar: estou usando o Parallels para minha máquina virtual Windows e sua memória reservada de 8 GB é classificada como 'memória com fio'.
Nullius
19

Lendo o uso de memória do sistema no Activity Monitor

em support.apple.com fornece uma explicação detalhada sobre os diferentes "tipos" de RAM.

  • Memória livre: é a RAM que não está sendo usada.

  • Memória com fio: as informações nesta memória não podem ser movidas para o disco rígido, portanto devem permanecer na RAM. A quantidade de memória com fio depende dos aplicativos que você está usando.

  • Memória ativa: essas informações estão atualmente na memória e foram usadas recentemente.

  • Memória inativa: essas informações na memória não estão sendo usadas ativamente, mas foram usadas recentemente.

  • Usado: é a quantidade total de memória usada.

gentmatt
fonte
7
Essas informações acima são para "explicação detalhada" do que é biologia no ensino médio em nível de medicina. Não nos diz nada sobre a memória com fio.
Hassan Syed
2
developer.apple.com/library/mac/documentation/performance/… tente isso para "informações detalhadas"
Hassan Syed
6

O Mac OS X é um sistema operacional moderno, portanto, usa memória virtual para fazer parecer aos aplicativos que o espaço na memória não é um objeto. Os aplicativos usados ​​mais recentemente tendem a ser movidos para a RAM, os aplicativos menos usados ​​são movidos para o disco rígido (entradas e saídas de página são um sinal desse movimento). O sistema operacional não usará o disco rígido até ficar sem espaço na RAM.

Não há aplicativo específico que "cause" a acumulação dessa memória com fio. O sistema operacional está gerenciando todas as partes de si mesmo e os aplicativos que você lançou para fazer o melhor uso da RAM que você possui.

Sair de aplicativos não utilizados ou, melhor ainda, reiniciar o computador será a maneira mais eficiente de "limpar" a memória. O FreeMemory faz um bom trabalho e fico surpreso que o sistema operacional não esteja executando essa operação de tempos em tempos ... é bom ter um status na memória livre!

Fred
fonte
6
Mais especificamente, a memória com fio é aquela que não pode ser paginada. Qualquer outro aplicativo tem sua memória colocada no arquivo de troca, mas a memória com fio sempre permanece na ram real. Alguns dos usuários mais comuns de memória com fio são aplicativos de visualização (Parallels, VMWare) e o sistema operacional mac os x. Além disso, não se preocupe se você não tiver muita memória livre, a memória inativa é tão boa quanto a gratuita, pois pode ser realocada para qualquer aplicativo que precise. Muitas páginas de entrada e de saída são um bom sinal de que você precisa de mais
memória
Concordo, muitas entradas e saídas de página é um sinal de insuficiência de RAM. Eu tenho 8 GB de RAM no meu sistema e frequentemente fico sem espaço "livre", executando aplicativos Xcode e Adobe ... Estou pensando em colocar 16 GB em breve, uma vez que o preço fique abaixo de 500 $. Espero que seja o suficiente por um tempo! :-)
Fred
Mudar de um MBP com 6 GB de RAM para um MBA com 4 GB de RAM me fez perceber que os SSDs são muito melhores do que a RAM extra. 4 GB com um SSD é suficiente para rodar Chrome, Mail, Skype, VMWare Fusion, iTunes, Aperture, Adium, OmniFocus e muito mais ao mesmo tempo, sem soluços. Passar de 4 a 6 GB no meu MBP não fez uma diferença enorme.
W00t
6

Para uma resposta definitiva, embora específica do SO, em Diretrizes de desempenho de uso de memória :

Memória com fio

A memória com fio (também chamada de memória residente) armazena código do kernel e estruturas de dados que nunca devem ser paginadas em disco. Aplicativos, estruturas e outros softwares no nível do usuário não podem alocar memória com fio. No entanto, eles podem afetar a quantidade de memória com fio existente a qualquer momento. Por exemplo, um aplicativo que cria threads e portas aloca implicitamente memória com fio para os recursos necessários do kernel associados a eles.

A Tabela 2 lista alguns dos custos de memória com fio para entidades geradas por aplicativos

Memória com fio gerada por software no nível do usuário

Como você pode ver, todo encadeamento, processo e biblioteca contribui para a área de cobertura residente do sistema. Além de seu aplicativo usar memória com fio, no entanto, o próprio kernel requer memória com fio para as seguintes entidades:

  • Objetos VM
  • o cache do buffer de memória virtual
  • Caches de buffer de E / S
  • motoristas

As estruturas de dados com fio também estão associadas às tabelas físicas de páginas e mapas usadas para armazenar informações de mapeamento de memória virtual. Ambas as entidades são dimensionadas com a quantidade de memória física disponível. Conseqüentemente, quando você adiciona memória a um sistema, a quantidade de memória com fio aumenta mesmo que nada mais mude. Quando um computador é inicializado no Finder pela primeira vez, sem outros aplicativos em execução, a memória com fio pode consumir aproximadamente 14 megabytes de um sistema de 64 megabytes e 17 megabytes de um sistema de 128 megabytes.

As páginas de memória com fio não são movidas imediatamente de volta à lista livre quando se tornam inválidas. Em vez disso, eles são “lixo coletado” quando a contagem de páginas gratuitas cai abaixo do limite que aciona eventos de saída de página.

Greenonline
fonte
4

Existem várias respostas muito boas e eu queria adicionar uma ferramenta que qualquer pessoa possa usar para documentar exatamente o que a memória com fio está em uso - portanto, uma resposta específica, em vez de uma explicação geral das categorias.

No caso em que todos os Aplicativos são encerrados e ainda há uma quantidade considerável de memória com fio, você pode usar o sysdiagnosecomando para capturar a alocação de memória do sistema quando estiver usando mais memória do que o esperado.

Em seguida, salve / mova o arquivo tar.gz dos resultados de / var / tmp para a Área de trabalho para que eles não sejam apagados na reinicialização.

Em seguida, reinicie o seu Mac e, antes de iniciar qualquer programa extra, repita o sysdiagnosecomando e compare a memória antes e depois para ver quais processos estavam consumindo a memória extra com fio.

bmike
fonte
-4

a memória virtual é basicamente livre _ _ espaço usado como uma extensão do ram

arman
fonte
A memória virtual pode estar "livre", pois "o custo pago pela RAM não é afetado" (embora contribua com o custo pago pelo armazenamento em disco) ou "livre", como "sem usar RAM para armazenar o conteúdo" (não verdade porque requer uma pequena quantidade de RAM para seu gerenciamento), mas como o custo da memória é geralmente considerado mais em termos de efeito na velocidade de operação e acesso, é muito mais lento do que acessar a RAM que dificilmente pode ser considerado "basicamente gratuito".
Zhora