SóProvas


ID
17872
Banca
CESGRANRIO
Órgão
BNDES
Ano
2008
Provas
Disciplina
Programação
Assuntos

Um servidor Linux, que roda, exclusivamente, um servidor de aplicação Java EE, possui 2 GB de memória RAM e 1 CPU. A única aplicação em execução atinge, em momentos de pico, 50 usuários simultâneos. Para que essa aplicação tenha um desempenho adequado, o tamanho máximo da Heap da JVM pode ser configurado para

Alternativas
Comentários
  • Qual o raciocício para responder a essa pergunta?
  • "Comentário: A questão trata de configurações de memória da JVM(Java Virtual Machine), que mais precisamente, a configuração da área de Heap. A JVM Heap Space é a área de memória onde todos os objetos residem. Além dos objetos criados nas aplicações, o heap ainda possui uma área de memória reservada para o Garbage Colletctor e para algumas outras atividades da JVM. Pode-se perceber então, que o heap deve ser configurado em tamanho de memória, ou seja, MB. Assim as alternativas A e C são descartadas pois nada se trata de quantidade máxima de threads suportadas.

    Quanto às outras alternativas, temos os seguintes fatos: o tamanho default da heap nas JVM vaira entre 1MB a 2MB dependendo da versão da mesma; o tamanho máximo default do Heap da JVM é em torno de 16MB a 64MB dependendo também das versões. Eliminamos assim a alternativa B pois não faria sentido para aumentar o desempenho de nossa aplicação, configurar um Heap com um tamanho máximo dentro do intervalo do tamanho default do mesmo(Veja que a questão pediu uma alternativa para o tamanho máximo).

    Por último, não faria muito sentido informar à JVM que o tamanho máximo da Heap como sendo o tamanho total de memória do servidor como mostra a alternativa D (tem que sobrar alguma coisa pro sistema operacional afinal ;-) ). Assim sendo, fica como sendo a alternativa correta a letra E.

    links interessantes:

    1)http://www.onjava.com/pub/a/onjava/2001/08/22/optimization.html
    2)http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html
    3) http://wiki.apache.org/tomcat/FAQ/Memory

    Bons Estudos!"
    Junho 2, 2008 Escrito por computacaoeconcursos | Arquitetura de Sistemas de Computação, Desenvolvimento, Questões de Provas | | Não Há Comentários
    :: Computação & Concursos ::.
    Theme: Andreas04 de Andreas Viklund. Blog no WordPress.com.
  • Eu daria outro raciocínio. É mais uma questão de sistemas operacionais do que java.Temos 2Gb de memória. Precisamos de parte dele para o sistema operacional e seus serviços. Sabemos que a máquina virtual é um programa pesado. Já temos aí bem menos do que 2Gb. O programa para rodar vai precisar ainda de memória para as threads (1 por usuário simultâneo + garbage collector) + variáveis estáticas + pilha das chamadas de função etc...A chave aí é que você só tem uma CPU, portanto só um heap está sendo usado ao mesmo tempo. Matou então as opções que não falam de memória. E matou a de 2Gb, pois com isto você teria swap o que tornaria tudo muito lento. Ficam então as opções de 32Mb ou 512M.Como você sabe que cada requisição é uma thread e que em java threads de mesma prioridade não são preemptivas, então poderia setar 512M. Aí no dia que fizer um upgrade do processador para um quadcore terá várias threads rodando ao mesmo tempo e ficará tudo muuuuuito mais lento:-)
  • Meu raciocínio: Se o default da heap da JVM é 128MB (lembro que uma vez aumentei para 256), e só tem isso rodando, aumenta pra 512MB... ;)