[MASOCH-L] Servidor com mais de 4GB de RAM

Rafael Marcelino Koike r.koike at terra.com.br
Wed Jun 22 02:09:18 -03 2005


Sua pergunta faz sentido mas a resposta pode ser bem longa para que voce 
compreenda a razao pelo qual alguns dizem que sim e outros que nao.

De maneira simples, os programas nunca acessam o endereçamento real da 
memória, mas sim uma memória Virtual.

Cada processo ou programa no sistema operacional quando é iniciado, recebe 
uma memória ficticia de 4GB.
É como se sempre que o programa inicia-se, independente se a maquina tem 1MB 
de RAM ou 1GB de RAM, ela sempre pude-se endereçar 4GB.
Pelo menos os processos podem fazer isso.
Imagine que uma memória vai do numero 0 a 4096
Dentro de cada numero voce pode armazenar 0 ou 1
Cada programa recebe sua memória de 0 a 4096
Ai voce vai pensar que isso vai gerar um conflito.

Mas na verdade o primeiro programa tem de 0 a 4096 na memória fisica.
O segundo programa tem de 4097 a 8193
E assim por diante.

Ai voce vai se perguntar, mas se minha memória vai de 0 a 8193, eu nunca vou 
poder ter mais de dois programas rodando ao mesmo tempo.

Errado.

O sistema operacial, apenas faz o mapeamento da memória virtual para a 
memória real, de regioes onde voce armazeou dados.
Entao na maioria da vezes, voce fornece de 0 a 4096, mas o programa usa de 0 
a 10 ou de 0 a 25, e o SO só mapeia esses endereços na memória fisica.

No caso da maioria dos programas, praticamente todos eles, se dividem em 
varios programas para executar suas tarefas, entao voce tem 4GB exclusivos 
para cada processo.
E no caso do Oracle é a mesma coisa.
Pode ter certeza que voce praticamente nunca vai ver um processo seu usando 
4GB de RAM.
E se isso acontecer, esse processo deu PAU! e nao está liberando memória.
Entao voce deve estar se perguntando:
Entao o maximo de memória que TODOS os meus programas podem alocar sao os 
10GB de RAM que a minha maquina vai ter?

SIM, essa memória mais o tamanho da sua partição de troca SWAP, que muitas 
vezes tem o dobro de memória RAM, mas com 10GB de ram, nao sei se segue a 
mesma filosofia.

Entao se voce tiver processos que consomen 10GB de RAM mais toda a sua SWAP.
Com certeza voce vai ver varios erros no sistema operacional de MALLOC 
(memory allocation) error.

A coisa é muito mais complexa do que isso, envolve muito mais e acho que 
está fora do escopo.
Mas para resumir na resposta.

SIM, cada processo no linux mapeia sempre 4GB de memória e SIM voce vai usar 
todo os seus 10GB de RAM usando um linux compilado com suporte a 64GB de RAM 
e SIM o Oracle 10 vai usar os 10GB de RAM porque COM CERTEZA ele vai iniciar 
varios processos e cada um deles vai usar sua parte da memória.

[ ]'s
Rafael M. Koike



----- Original Message ----- 
From: "Brasil Sul Tecnologia Ltda" <cesar at brasilsulnet.com.br>
To: "Mail Aid and Succor, On-line Comfort and Help" 
<masoch-l at eng.registro.br>
Sent: Monday, June 20, 2005 7:23 PM
Subject: [MASOCH-L] Servidor com mais de 4GB de RAM


> Caros,
> Estamos adquirindo um servidor com 10GB de RAM e 8 processadores Xeon.
>
> Vamos instalar o SUSE e Oracle 10G, a minha duvida é a seguinte:
> Temos atualmente um servidor com 4GB fazendo o mesmo papel, e este 
> servidor esta
> com Windows 2003, porem esbarramos em um limite de maximo de 2GB por 
> processos,
> ou seja, mesmo que tivessemos 10GB o processo do Oracle poderia chegar 
> somente
> a 2GB.
>
> Estudando descobrimos que o Windows trabalha com ate 64GB de RAM, porem 
> cada
> processo pode ter no maximo 2GB e a limitacao nao é do sistema operacional 
> e
> sim do processador.
>
> http://www.brianmadden.com/content/content.asp?id=69
> "By definition, a 32-bit processor uses 32 bits to refer to the location 
> of each
> byte of memory. 2^32 = 4.2 billion, which means a memory address that's 32 
> bits
> long can only refer to 4.2 billion unique locations (i.e. 4 GB). "
>
> Descobrimos que utilizando alguns parametros é possivel estender o tamanho 
> de
> cada processo para 3GB (PAE).
>
> Mas agora com um equipamento com 10GB, estaremos tambem restritos a estes 
> 3GB,
> ou seja, o resto fica de bobeira?
>
> Em documentações sobre linux, vi que é possivel utilizar mais de 4GB em um
> processador de 32bits, porem nao fiquei muito tranquilo com as 
> explicacoes,
> alguem tem experiencia pratica com uma maquina com mais de 4GB rodando 
> linux
> com um processador de 32Bits, alguem tem alguma documentacao sobre isto? 
> Ate
> agora encontrei somente um pdf da oracle de 2002, caso alguem tenha algo 
> novo e
> de preferencia sobre SUSE Enterprise.
>
> O que encontrei ate agora foi:
> http://www.oracle.com/technology/tech/linux/pdf/linuxVM-WP-022703.pdf
>
> Gostaria de relembrar que o problema é o processador, se fosse um de 
> 64bits, nao
> haveria problema.
>
> ate
> Cesar Camargos
> __
> masoch-l list
> https://eng.registro.br/mailman/listinfo/masoch-l
>
> 





More information about the masoch-l mailing list