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.
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.
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.
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.
[quote=leandrogmuller]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.
[/quote]
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…
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.
[quote=leandrogmuller]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
[/quote]
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.