O Arch Linux acha que tenho cerca de 16 GB de RAM, quando só tenho 8

10

Eu fiz várias pesquisas e não consigo encontrar nada no Google sobre o porquê, mas o arch alocou 7,7 GB para ram e 7,9 para trocar.

  • Eu só tenho 8 GB de RAM.

  • alocou mais ram para trocar do que o normal

Como eu poderia mudar as alocações?

saída de cat /proc/meminfo: MemTotal: 8091960 kB MemFree: 4925736 kB MemAvailable: 6131188 kB Buffers: 268936 kB Cached: 1219460 kB SwapCached: 0 kB Active: 1527516 kB Inactive: 1301140 kB Active(anon): 768904 kB Inactive(anon): 711440 kB Active(file): 758612 kB Inactive(file): 589700 kB Unevictable: 32 kB Mlocked: 32 kB SwapTotal: 8300540 kB SwapFree: 8300540 kB Dirty: 1960 kB Writeback: 0 kB AnonPages: 1306968 kB Mapped: 382800 kB Shmem: 140100 kB Slab: 197964 kB SReclaimable: 163104 kB SUnreclaim: 34860 kB KernelStack: 6864 kB PageTables: 29200 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 12346520 kB Committed_AS: 3927808 kB VmallocTotal: 34359738367 kB VmallocUsed: 0 kB VmallocChunk: 0 kB HardwareCorrupted: 0 kB AnonHugePages: 186368 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 584316 kB DirectMap2M: 7716864 kB DirectMap1G: 0 kB

jaw2233
fonte
21
swap , por definição, não está usando RAM.
user4556274
1
A mesma troca (ou um pouco mais) que você tem da RAM é um bom começo ... Lembre-se também de que o espaço de troca pode ser usado se você hibernar (colocar a RAM em disco). Antigamente, dizia-se o dobro de swap que RAM - mas para Linux, essa "regra" só se aplicava quando você tinha 512 MB ou menos (ou 256 MB). No entanto, havia sistemas Unix (pelo menos um) em que o design era tal que você sempre precisava ter pelo menos o dobro da quantidade de troca. O Linux anterior tinha limites sobre a quantidade de trocas por partição, número de partições de troca e / ou troca total. TBC
Baard Kopperud
2
Continuação ... Para realmente decidir quanta troca você precisa, você deve auditar cuidadosamente quanta memória os processos que você (e seus usuários) executam realmente precisam - mas lembre-se de que a troca não substitui muito pouca RAM. Dito isto - e isso de alguém que só tem 2 GB (e não apenas 8 GB como você) de RAM - a maioria dos sistemas será capaz de manter todos os processos na RAM. No entanto, eles não precisam , portanto, o swap é usado para armazenar páginas de processos "não utilizados" da memória - e, às vezes, processos "não utilizados" inteiros - liberando assim a RAM ... essa RAM "não utilizada" é usada como buffer e cache, para acelerar as coisas.
Baard Kopperud
2
O número de 7,7 GB provavelmente vem de ~ 300 MB de RAM física, tendo sido alocado permanentemente para o kernel. Essa RAM ainda existe, mas não pode ser usada para programas comuns.
Zwol
1
O que o leva a acreditar que "Arch pensa que você tem 16 GB de RAM"?
marcelm

Respostas:

26

O que isso está dizendo é que você tem 16 GB de memória virtual .

Memória virtual é o total de RAM física e espaço de troca adicionados.

É uma maneira de deixar seu sistema executar mais programas do que fisicamente tem espaço.

Quanto de troca deve ser alocado para uma máquina é uma questão complicada e opinativa; pergunte a 2 pessoas e obtenha 3 respostas :-)

Sua configuração não é ruim e eu não recomendaria fazer alterações até você aprender muito mais sobre como a memória virtual funciona e como ajustá-la. É um bom ponto de partida.

Stephen Harris
fonte
5
" Memória virtual é o total de RAM física e espaço de troca adicionado. " Não, não é. Por exemplo, em uma máquina de 64 bits com 4 GB de RAM e 4 GB de troca, posso mapear um arquivo de 64 GB na memória. São 64 GB de memória virtual, embora a RAM e a troca totalizem 8 GB.
David Schwartz
1
@DavidSchwartz está correto. É mais apropriado dizer que a memória virtual é o que pode ser endereçado como memória, de preferência com algo que a apóie. Esse algo pode ser chips de RAM, alguma porta de E / S, uma partição de troca, um arquivo de troca no disco ou um arquivo comum sem significado especial para o sistema operacional ou o gerenciador de memória. Também não é necessário que funcione de tal maneira que, se você escrever algo e, em seguida, ler imediatamente, leia novamente o que escreveu. (Por exemplo, alguns registros de E / S funcionam dessa maneira.)
um CVn em
1
É a "versão para iniciantes do Unix 101". Também não mencionei como as páginas executáveis ​​podem ser adicionadas como páginas somente leitura ao mapa de memória e outras coisas divertidas, como a localização geral. Como uma aproximação de primeiro nível, no entanto, VM = RAM + swap está perto o suficiente e é sobre tudo isso que realmente interessava.
Stephen Harris
"O que isso está dizendo é que você tem 16 GB de memória virtual". - Não há como saber isso, já que o OP nunca explicou por que ele acha que Arch diz que tem 16 GB.
marcelm
1
@StephenHarris São as aproximações de primeiro nível que causam o mal-entendido por trás dessa pergunta. As simplificações são boas, desde que indiquem que são simplificações ou estão de fato corretas.
David Schwartz