Gerenciador de Tarefas: Tamanho da VM menor que o uso de Mem?

4

O Gerenciador de Tarefas do Windows XP pode mostrar duas colunas diferentes relacionadas ao uso de memória dos processos. Um é Mem Usage e o outro é VM Size (não mostrado por padrão, você precisa ativá-lo).

Pelo que eu recolhi, VM size é o tamanho de todo o espaço de memória ocupado pelo processo, e Mem Usage é a quantidade de memória atualmente comprometida e usada. Essa suposição é verificada pela maioria dos processos quando VM Size é apenas um pouco maior que Mem Usage . Por exemplo, meu Outlook atualmente tem 79.724 K em VM Size e 56.600 K em Mem Usage .

Mas ele falha em outros processos, como o Firefox, que atualmente tem 171.900 K para Mem Usage e apenas 156,440 K em VM Size . Como um processo pode usar mais memória do que a quantidade de memória virtual alocada a ele?

Então, talvez minha interpretação dessas colunas esteja errada. O que eles realmente significam?

    
por shoosh 27.01.2010 / 18:56

6 respostas

1

Nos tópicos da Ajuda do Gerenciador de tarefas do Windows XP:

Uso da memória
No Gerenciador de Tarefas, o conjunto de trabalho atual de um processo, em kilobytes. O conjunto de trabalho atual é o número de páginas atualmente residentes na memória. Na guia Processos do Gerenciador de Tarefas, o cabeçalho da coluna é Uso de Mem.

Tamanho da memória virtual
No Gerenciador de Tarefas, a quantidade de memória virtual ou espaço de endereço, comprometida com um processo. Na guia Processos do Gerenciador de Tarefas, o título da coluna é Tamanho da VM.

So Mem Usage é a quantidade de RAM física atualmente alocada para um processo, e VM Size é a quantidade de memória virtual (baseada em disco) atualmente alocada para um processo.

Esses dois contadores são independentes, embora um processo que mostre um número alto em um normalmente mostre um número alto para o outro. É só que não há relação específica entre os dois.

    
por 18.09.2010 / 17:06
0

The definition of "virtual memory" is based on redefining the address space with a contiguous virtual memory addresses to "trick" programs into thinking they are using large blocks of contiguous addresses. source

Então, às vezes, pode haver coisas de guias mais antigas no espaço de endereço da VM. Por isntance eu tenho 50 abas abertas na minha sessão do navegador agora. Se eu clicar na primeira aba, as chances são de que ele esteja na VM esperando para ser chamado. Então, vai demorar um segundo para desenhar na tela. Eu começo a ouvir o disco rígido se afastar enquanto ele sai da aba da VM

Se esse não for o caso. Pode ser que o FF esteja vazando memória ou uma extensão seja o culpado. Eu tive problema como lá com o plugin divx web player em uma versão beta do firefox.

    
por 27.01.2010 / 19:30
0

A única explicação que vejo é a fragmentação da memória. Quando o processo aloca 1 octeto, ele conta para 1 octeto no tamanho da VM. Mas este 1 octeto ocupa uma página da memória física: para o sistema operacional Windows, uma página é 4K. Portanto, se a memória de processo estiver fragmentada e usar muitos blocos pequenos, isso poderá levar a um enorme uso de memória física em comparação com o tamanho da memória real alocada.

    
por 06.03.2010 / 18:14
0

Desculpe, mas todas essas respostas perdem o alvo.

A resposta curta: a coluna VM size não reflete o espaço de endereço virtual total (“v.a.s.”) definido pelo processo. É apenas um subconjunto disso. Especificamente, é o espaço de endereço "private committed" (também conhecido como "commit charge" do processo).

Considerando que a coluna Mem Usage mostra o subconjunto do espaço de endereço virtual total do processo que é "válido" para o processo, isto é, pode ser acessado sem incorrer em uma falha de página.

(É comum, mas impreciso, dizer que é o subconjunto que está "na RAM". "Válido" - isto é, no conjunto de trabalho do processo - significa que está na memória e pode ser acessado sem incorrendo em uma falha de página, mas devido à ação dos caches de páginas (listas de páginas em standby e modificadas), além da memória compartilhada, geralmente há um pouco do vas do processo que está na RAM, mas requer uma falha de página para acessar ... mas será uma falha de página "soft", ou seja, uma que não envolva E / S de disco. Uma vez resolvida, a página estará no processo de trabalho e referências posteriores a ela não incorrerão em falhas ... a menos que ela seja envelhecida posteriormente fora do conjunto de trabalho.)

Então, se VM size não é todo o tamanho virtual do processo, onde fica o resto? O outro grande contribuidor para o espaço de endereçamento virtual total de um processo é o espaço de endereçamento mapeado . A diferença entre eles é que private committed v.a.s. - Vou chamá-lo de privado a partir de agora; não existe algo não privado privado - é apoiado pelo arquivo de paginação, enquanto mapeado v.a.s. é apoiado pelos arquivos para os quais está mapeado.

"Apoiado por" significa que a parte que não pode ser mantida na RAM é mantida nesses arquivos.

Há também espaço virtual não-paginado (muito pequeno) e, possivelmente, memória "fisicamente mapeada" (muito pouco usada).

O total de todos eles poderia ser chamado de espaço de endereçamento virtual acessível do processo, porque todos eles podem ser referenciados sem incorrer em violação de acesso à memória (mas, para as partes pagináveis, poderia incorrer em uma falha de página, mas isso não significa que eles não estejam acessíveis; significa apenas que o primeiro acesso demora um pouco mais).

As duas primeiras porções, espaço de endereçamento privado confirmado e mapeado, podem ser chamadas de espaço de endereçamento virtual paginável .

A coluna Mem Usage deveria ter sido chamada de "Conjunto de trabalho (total)". Normalmente será menor que o total pageable v.a.s. Infelizmente o Gerenciador de Tarefas do XP não tem um contador para o último. Mas, de qualquer forma, a coluna Mem Usage mostra quanto do espaço de endereço virtual paginável total pode ser referenciado pelo processo sem incorrer em uma falha de página. Algumas delas serão páginas físicas associadas a páginas dedicadas privadas e outras com páginas mapeadas.

Se o gerenciador de tarefas do XP tivesse mais algumas colunas disponíveis, você veria as relações que espera ver: Total pageable v.a.s. (para o qual não existe agora um contador) nunca deve ser menor que o conjunto de trabalho total (chamado Mem Usage no XP); e o privado cometido v.a.s. nunca deve ser menor que a parte privada do conjunto de trabalho do processo.

Gerenciador de tarefas em versões posteriores do Windows tem mais alguns desses contadores. A ferramenta Process Explorer da Sysinternals tem ainda mais. No Process Explorer:

"Conjunto de trabalho" é o conjunto de trabalho total do processo

"WS Shareable" é o subconjunto do total potencialmente compartilhado com outros processos (é um subconjunto do v.a.s. mapeado)

"WS Shared" é o subconjunto de "WS Shareable" que, na verdade, é compartilhado com outros processos, ou seja, também está nos conjuntos de trabalho de outros processos.

"WS Private" é o subconjunto de "Working Set" que não é compartilhável com outros processos. É associado e um subconjunto do compromisso privado do processo v.a.s.

"Bytes privados" é o compromisso privado do processo v.a.s. Você notará que é sempre maior que "WS Private", que é o relacionamento que você está procurando.

"Virtual Size" é a quantidade total de v.a.s. no processo. Isso inclui v.a.s. privada e compartilhada, mas também espaço de endereço "reservado". "Reservado" não está acessível, ocupa quase nenhum espaço físico em qualquer lugar, mas reserva intervalos de endereços virtuais. Não inclui regiões fisicamente mapeadas (também conhecidas como memória "AWE"). Em x64 sob Win 8.1 e posterior, também pode incluir uma área gigantesca (2.147.483.648 K ou 2 TiB) reservada para um novo recurso chamado "Controle de Fluxo Guard". Para obter informações sobre isso, consulte esta entrada em Alex Ionescu's blog

    
por 13.09.2015 / 12:49
-1

Apenas supondo, podem ser blocos de memória compartilhados que foram alocados pelo Firefox, então dados para alguma outra tarefa e não mapeados pelo FF, mas ainda contados como pertencentes a ele?

    
por 27.01.2010 / 21:02
-1

O tamanho da VM no gerenciador de tarefas se refere a quanto ele está paginando na memória virtual real (arquivo de permuta) no disco. Linky

    
por 22.07.2010 / 21:30