Java roda melhor em Linux ou FreeBSD?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
marcelomartins
Moderador
[Avatar]

Membro desde: 07/01/2004 10:53:19
Mensagens: 1477
Localização: Porto Alegre - RS
Offline

Pessoal, estou com essa dúvida. Tenho a idéia (não sei como) de que o Java roda melhor no Windows do que em Linux ou FreeBSD. Isso porque (também não sei de onde tirei isso) o gerenciamento de memória do windows com os aplicativos Java se saem melhor.

Partindo do principio que o gerenciamento de memória do Linux com aplicativos Java não é tão bom assim, eu pergunto se no FreeBSD eu teria mais recursos ou um melhor desempenho ou alguma coisa melhor.

Posso ainda estar falando um monte de BESTEIRAS, mas no final da história, eu estou instalando um servidor que vai rodar o Tomcat e gostaria de algumas opiniões sobre o sistema operacional que será melhor eu utilizar com java, Linux ou FreeBSD.

Obrigado

PS: Eu nunca cheguei perto de um solaris

Marcelo Martins
http://twitter.com/marcelomartins
Tudo que hoje eu realmente preciso saber, aprendi no jardim da infância.

Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Você tem razão: o Java roda melhor no Windows do que no Linux, principalmente nos Linuxes com kernel < 2.4.x. Motivo: Java é todo baseado em threads e isto funciona muito bem no Windows e no Linux (K < 2.4.x) cada thread era um processo. As novas versões de Linux com kernel acima de 2.6 prometem equilibrar e até virar o Jogo, mas até agora isto não está muito claro nos testes que vi talvez porque a versão do Java para Linux talvez não use bem as novas facilidades.

Alguns links interesantes que achei no meu guru:

  • Linux Multithreading Advances

    Migrating applications to the 2.6 kernel and NPTL

    Kernel comparison: Web serving on 2.4 and 2.6

    http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=13&t=001043

    [url=http://cselab.snu.ac.kr/member/naehyuck/papers/%5BJ14%5DComparative%20performance%20evaluation%20of%20Java%20threads%20for%20embedded%20applications.pdf]PDF - Comparative performance evaluation of Java threads
    for embedded applications: Linux Thread vs. Green Thread[/url]

  • Nem sabia que o Java rodava bem no FreeBSD e nem sei como trata as threads. Na única vez que usei Java no FreBSD deu uma encrenca que não lembro qual pois isto faz um bom tempo.

    Se está preocupado com performance da sua aplicação é bom estudar direitinho as opções da JVM, as configurações do tomcat, comparar o tomcat com o jetty e até mesmo considerar o uso de um servidor pago como o orionserver. Na verdade o tomcat é ótimo para desenvolvimento, se integra bem com o Apache mas seu desempenho é inferior a outras opções, principalmente sem fazer uma sintonia fina.

    []s
    Luca

    Dare Obasanjo (Program Manager at Microsoft)
    "The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


    CEP, JMS, JMX e coisas afins (ou não)
    http://lucabastos.blogspot.com/
    [Email] [WWW]
    leandrogmuller
    Debugger
    [Avatar]

    Membro desde: 19/11/2008 12:30:27
    Mensagens: 55
    Localização: Paranavaí
    Offline

    Mas nessa história na versao do kernel 2.6 mudou?
    Pois utilizo atualmente o fedora 10 e tem horas que o glassfish trava tudo, fica 100% no processamento, creio eu que alguma thread tenha estourado o processamento ou memória, ocorre muito com relatórios pesados pelo jasper.

    Minhas
    -XX:MaxPermSize=1000m
    -Xmx1200m

    tem horas que para tudo, ate para acessar o servidor fica lento.
    Servidor Dual Core 2 duo com 3 ghz proc.. e com 4gb de memória.




    [MSN]
    enantiomero
    JavaEvangelist

    Membro desde: 23/04/2008 09:44:26
    Mensagens: 304
    Offline

    leandrogmuller wrote:Mas nessa história na versao do kernel 2.6 mudou?
    Pois utilizo atualmente o fedora 10 e tem horas que o glassfish trava tudo, fica 100% no processamento, creio eu que alguma thread tenha estourado o processamento ou memória, ocorre muito com relatórios pesados pelo jasper.

    Minhas
    -XX:MaxPermSize=1000m
    -Xmx1200m

    tem horas que para tudo, ate para acessar o servidor fica lento.
    Servidor Dual Core 2 duo com 3 ghz proc.. e com 4gb de memória.






    A culpa, basicamente, é do Jasper, porque ele ocupa muita memória e CPU. Se você tiver uma outra solução de relatórios, ou então quiser rodar os relatórios em outra máquina...
    leandrogmuller
    Debugger
    [Avatar]

    Membro desde: 19/11/2008 12:30:27
    Mensagens: 55
    Localização: Paranavaí
    Offline

    E qual seria outra alternativa para relatorios?

    Uma coisa que sempre fiquei sismado é o estouro de memoria, por ser um servidor de aplicação o glassfish, teria que expandir a memória, criar uma forma de não prejudicar todo o sistema.

    Imagina 500 usuários logados, por causa de um relatorio derrubar todos os usuários.

    Pior que isso não ocorre so com usuários, pois criei uma função para gerar arquivos textos no java, fazendo uma pesquisa no hibernate trazendo um arraylist muito grande também ocorre o estouro de memória.

    e olha o tanto liberado de memória para ele:

    -XX:MaxPermSize=1000m
    -Xmx1200m


    [MSN]
    KWill
    Virtual Machine Man
    [Avatar]

    Membro desde: 18/09/2006 10:05:46
    Mensagens: 609
    Offline

    leandrogmuller wrote:E qual seria outra alternativa para relatorios?

    Uma coisa que sempre fiquei sismado é o estouro de memoria, por ser um servidor de aplicação o glassfish, teria que expandir a memória, criar uma forma de não prejudicar todo o sistema.

    Imagina 500 usuários logados, por causa de um relatorio derrubar todos os usuários.

    Pior que isso não ocorre so com usuários, pois criei uma função para gerar arquivos textos no java, fazendo uma pesquisa no hibernate trazendo um arraylist muito grande também ocorre o estouro de memória.

    e olha o tanto liberado de memória para ele:

    -XX:MaxPermSize=1000m
    -Xmx1200m



    Oras, bote uma máquina e banco de dados dedicados somente aos relatórios então. Se só isso não bastar, passe por cima do Hibernate na hora de criar os relatórios e veja se usar stored procedures não ajuda na hora de criar os relatórios.

    Inté.

    This message was edited 1 time. Last update was at 09/10/2009 11:58:03


    "Só estou certo de que não possuo outras certezas" - KWill
    "Não penso, mas Googlo, logo existo!" - Geração Copy-Cola
     
    Índice dos Fóruns » Java Avançado
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team