10-12-2008, 04:39 PM
|
#4 (permalink)
|
|
Jesus Te Ama, Mas EU Não!
Registrado em: Oct 2008
Localização: 45º 33º 34º N | 122º 41º 41º W DESTINATION: ANYWHERE Adidas
Posts: 4,133
Agradecido 6,058 Vezes em 2,106 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Pontos: 20,442, Nível: 90 |
Nome Real: Anderson Andrade
|
Poucos sabem, mas a arquitetura x86 (Um dia na XPZona me perguntaram o que era x86 ) /32bits (Linux/Windows) oferece uma limitação importante para aplicações Java no tocante ao consumo de memória RAM. A arquitetura 32 bits pode endereçar nativamente no máximo 4GB de memória RAM (2^32 = 4.2 bilhões ~ 4Gb). Destes 4GB, metade (2GB) é reservada para o funcionamento do kernel e a outra metade (2GB) fica disponível para outros processos e aplicações. Não vou entrar no mérito da questão do porquê isso ocorre, até porque não entendo muito sobre estes assuntos de JAVA, porém adianto que existem algumas alternativas no Windows 2k/2k3/XP (/PAE) para endereçar um número maior de memória ao invés de 2GB, o mesmo é válido para os kernels mais novos do Linux (2.4 para cima), mas até agora não compreendi muito bem o que isso pode mudar em relação ao suporte à Java.
O fato é que a pilha (heap) do JVM utiliza a memória de forma contínua, alocando um bloco unitário, como um único processo, limitando o uso de RAM por uma instância JVM única à 1.8GB (os 200Mb restantes são usados pelo JVM para atender processos internos).
A pouco mais de uns dois meses, o Estive-O teve um problema e postou um tópico com a dúvida sobre o erro do Heap do Java, que não estava permitindo dar load no servidor, e se não me engano ele já havia locado o seu dedicado e os dias estavam correndo... A resposta foi simples, pois o Java dá erros de Heap Space quando a quantidade de memória informada, é inferior a existente.
Em resumo: se você está pensando em comprar um servidor na arquitetura x86/32bits (Intel/AMD) e pretende instalar mais do que 4GB de memória RAM pense e estude esta questão, pois você poderá estar comprando memória extra (e cara) que não fará a menor diferença, pois não poderá ser usada pelo JVM.
Se a sua aplicação no caso de servidor L2J, precisar de algo maior (o que está se tornando bastante comum hoje em dia), a solução é partir para a arquitetura 64bits (tanto em Windows quanto em Linux), arquitetura que graças à AMD está se tornando mais popular e viável ($) para os nossos bolsos. Em alguns casos você pode optar pelo modelo híbrido 32/64bits (Atlhon64) e ficar pronto para quando for a hora de migrar. O Ivan quem está mais por dentro dos modelos de processadores AMD, e Intel.
O interessante é saber que a arquitetura 32bits Sparc da Sun não apresenta este problema com o JVM. Que diferença faz ser dona da tecnologia não? )
Eu prefiro ficar com Intel por ela ter um nome bonitinho, e também ser conhecida mundialmente... Muitas pessoas ficam até cabreiras quando acessam o site de algum servidor para poder verificar a configuração do servidor, e encontram AMD como processador do servidor.
Eu jogava num servidor L2OFF chamado PvPX e os processadores eram Intel... Mas joguei em servidores que o processador era AMD, a diferença foi imensa, não sei se partia da má administração que não configurou corretamente o servidor, ou se da falta de memória RAM, ou até mesmo no blefe da configuração. Muitas pessoas mentem a configuração do servidor, a pouco tempo atrás eu ajudava um amigo diretamente num servidor L2J, ele emulava num Pentium D e pedia para eu por no site que usava Dual Xeon xD
|
|
|