terça-feira, 12 de agosto de 2008

Alterando a Memória Java do Openfire

Uma outra dúvida muito constante para os usuários do Openfire é como fazer para aumentar a memória Java para o aplicativo.

Nesse post vou demonstrar como fazer tal operação.

Usuários Linux:
  • Acesse o diretório raiz do Openfire (no meu caso fica em /opt/openfire)
  • Acesse o diretório bin
  • Edite o script openfire e descomente a linha INSTALL4J_ADD_VM_PARAMS como no exemplo abaixo:
#! /bin/sh

# Uncomment the following line to override the JVM search sequence
# INSTALL4J_JAVA_HOME_OVERRIDE=
# Uncomment the following line to add additional VM parameters
# INSTALL4J_ADD_VM_PARAMS=
#---------------------------------------------------------------------
INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx1024m" # o primeiro parâmetro é o mínimo e o segundo é o máximo. Ambos podem ser iguais, se for o caso.
#---------------------------------------------------------------------
  • Reinicie o Openfire.
Usuários Windows
  • Acesse o diretório raiz do Openfire
  • Acesse o diretório bin
  • Se você usa o Openfire como um serviço Windows, crie um arquivo de texto chamado openfire-service.vmoptions. Cada parâmetro da VM deve ser uma nova linha no arquivo. Por exemplo para setar um mínimo de 512M e máximo de 1024M, você deve usar:
-Xms512m
-Xmx1024m
  • Se você não usar o Openfire como serviço crie o arquivo openfired.vmoptions (o conteúdo é o mesmo, só muda o nome do arquivo).
  • Reinicie o Openfire
Espero que esse post ajude os usuários nessa dúvida que atormenta tanta gente.

UPDATE 14/08/08: O leitor Darkxnes deu a dica para usuários de Linux que usam o .rpm:
  • Edite o arquivo /etc/sysconfig/openfire
  • Descomente a linha: OPENFIRE_OPTS=-Xmx1024m
  • Altere o tamanho que se deseja (1024m é só uma sugestão).

37 comentários:

  1. Opa, uso o
    openfire-3.5.1-1

    Não encontrei nos Diretórios indicados, qual a versão que esta usando?!

    ResponderExcluir
  2. Eu uso a versão 3.5.2, com o .tar.gz.

    Você usa qual versão ?

    []s

    ResponderExcluir
  3. Para Redhat editar o arquivo /etc/sysconfig/openfire e Descomente a Linha:

    OPENFIRE_OPTS=-Xmx1024m

    Altere o tamanho que se deseja.

    ResponderExcluir
  4. Hey Darkxnes.

    Obrigado pelo comentário. Vou adicionar ao post tua dica.

    []s

    ResponderExcluir
  5. Bom Dia Marcelo

    No S.O. Windows não estou conseguindo alterar a memória Java do Openfire, estou criando o arquivo conforme citado a cima mas não está dando certo. Poderia me ajudar?

    Obrigado.

    ResponderExcluir
  6. Oi Rafael.

    Em princípio é só aquilo ali mesmo. Mas como nunca usei a versão pra Windows eu nunca precisei fazer isso.

    Uma dica: inscreva-se na lista Openfire-BR e poste essa dúvida lá que tenho certeza que você conseguirá resolver seu problema.

    []s

    ResponderExcluir
  7. No FreeBSD :

    adicione no /etc/rc.conf
    openfire_enable="YES"
    openfire_javargs='-Xmx1024m'

    Flávio

    ResponderExcluir
  8. Oi gostaria de relatar minha experiência com o Windows.
    Criei o arquivo conforme as instruções acima.
    Testei várias configurações, muitas deram pau.
    No final aquela que acabou resolvendo foi:

    -Xms1024m
    -Xmx1024m

    Reiniciei o Openfire e passou a constar a seguinte informação:

    77,14 MB of 1012,62 MB (7,6%) used

    Acho até que ficou superdimensionado. Talvez a medida adequada fosse "k" ao invés de "m".
    Depende de cada caso, eu creio.
    Abraços!
    Gilberto

    ResponderExcluir
  9. Oi Gilberto.

    Obrigado por participar e deixar seu comentário com a sua experiência.

    []s

    ResponderExcluir
  10. No Opensolaris/Solaris

    Adicione entre as "aspas" a quantidade de memória Java com o parâmetro "-Xmx256m" onde 256MB poderão ser alterados a quantidade de memória desejada ou disponível.

    OPENFIRE_OPTS="${OPENFIRE_OPTS} -DopenfireHome=${OPENFIRE_HOME} -Xmx256m"

    ResponderExcluir
  11. @giba
    -Xms32m -Xmm128m -Xmx2g -XX:NewRatio=2 -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=30


    As opçoes dependem do uso. Um servidor que deve suportar um carga alta, deve usar valores maiores. Quando o servidor tem periodos de grande consumo e outros de baixo consumo, é possivel configurar uma heap minima, media e maxima para manter um consumo de memoria mais adequando a quantidade de acesso. O que deve-se lembrar é que ao alocar memoria, a JVM pode demorar para uns milisegundos a mais para atender (ou ate mesmo recusar novas conexoes) enquanto aumenta a heap.

    ResponderExcluir
  12. Olá "anônimo".

    Obrigado pela participação e pelo excelente esclarecimento e dica.

    []s

    ResponderExcluir
  13. Bom dia, estou tendo dificuldade com o openfire e gostaria de saber se vocês podem me ajudar. Tenho um servidor rodando com todos os usuários e grupos já definidos mas preciso mudar de maquina e no servidor que está rodando eu instalei um plugin chamado: User Import Export só que quando eu restauro no outro servidor ele só restaura os usuários e os grupos não. Eu queria saber se o plugin pode estar falhando ou se é assim mesmo e se tem como exportar usuários e grupos do openfire.

    Obrigado por sua atenção.

    ResponderExcluir
  14. Mais um detalhe, eu instalei o openfire via apt-get no ubuntu-server 8.10 e o diretório /opt/openfire está vazio e preciso aumentar a memoria do java.

    Onde fica o arquivo que pra que eu possa alterar?

    Abraço.

    ResponderExcluir
  15. Amigos, depois de inumeras tentativas consegui resolver o problema da memoria no windows... espero que ajude a todos.. é simples, basta criar o arquivo sem a extensao .txt ....

    crie apenas openfired.vmoptions

    ResponderExcluir
  16. Marco, putz fazia um mês que estava tentando... agora foi!
    Marcelo, coloca isso aí no post (de tirar a extensão *.txt no windows) que vai ajudar muita gente.

    ResponderExcluir
  17. Boa tarde para todos.

    Senhores, estou enfrentando um grave problema no server openfire.

    Acontece que pela segunda vez, não consigo mais acessar a console do openfire, da primeira vez, achaei que havia trocado a senha e esquecido, então meti a cara e remontei um server em outra máquina, recadastrando os usuários na unha, já que não havia realizado um bkp dos usuários.

    Então, após o novo server já estar pronto e sendo utilizado, após uma reiniciada no servidor não consigo mais acessar...por via das dúvidas, criei dois usuários com privilégios de administrador, mas ainda assim não consigo acessar.

    Será que alguem pode me ajudar com esse tremendo problema?

    Grato pela atenção.

    Obs. Estou utilizando a versão mais nova do openfire, e estou usando o banco local, o mais simples, oferecido na configuração do server.

    ResponderExcluir
  18. Te recomendo assinar a lista Openfire-BR e dar uma procurada nos arquivos da lista.

    Já vi várias pessoas passando por isso, e lá é possível que você encontre alguma solução.

    []s e boa sorte.

    ResponderExcluir
  19. sou usuario windows, legal otima dica..

    André Blumenau-sc

    ResponderExcluir
  20. Valéu André.

    É bom saber que as dicas são úteis e realmente estão ajudando.

    Um abraço,

    ResponderExcluir
  21. Olá pessoal.
    Tenho OpenFire no Win2003 Server e esta rodando ok.Mas no final do dia os usuarios começam ficar offline e não enviam mensagem embora no servidor aparem como logados e ativos.
    A memória do Java esta com 62 de 63, por favor podem me dar uma luz.
    Aguiar.

    ResponderExcluir
  22. Pesquise nos arquivos da lista Openfire-BR que isso já foi várias vezes discutido.

    []s

    ResponderExcluir
  23. No Ubuntu Server 9.04, eu adicionei no /etc/init.d/openfire o argumento -Xmx1024m à variável $DAEMON_OPTS, depois reiniciei o serviço do Openfire e ficou legal...

    ResponderExcluir
  24. No Debian Etch existe o arquivo /etc/default/openfire na última linha tem o parametro DAEMON_OPTS"" no qual entre as aspas você deve colocar a quantidade de memória desejada "-Xms512m -Xmx1024m"

    ResponderExcluir
  25. Obrigado pela dica, ajudou muito.

    ResponderExcluir
  26. Por favor configurei três arquivos no formato txt com os parâmetros para windows para aumentar a memória java e não consigo altear-la.
    Gostaria de mais detalhes de como faço para aumentar a memória java do openfire.

    Agradeço

    ResponderExcluir
  27. Você seguiu todas as informações do post e dos comentários ?

    Caso positivo, te aconselho a te inscrever na lista Openfire-BR e mandar tuas dúvidas.

    []s

    ResponderExcluir
  28. Opa!
    Acabei de ter o mesmo problema salvou o meu dia! Obrigado!!

    ResponderExcluir
  29. De nada pessoal.

    O propósito do blog é esse mesmo !

    []s

    ResponderExcluir
  30. Ola,
    estou enfrentando problemas referente aos recursos de memoria e cpu utilizados pelo openfire 3.7.0 02/03/2011.

    Utilizo openfire+ldap (+/- 700 usuarios) no Fedora 12, em uma maquina com um core 2 duo, 4 Gb de memoria.

    Ja usava o openfire no inicio do ano, mas precisei voltar ao wildfire pois o openfire estava com um vasamento de memoria, onde eu liberei 2 Gb de memoria para o Java e mesmo assim estourava o tamanho, e o servidor saia fora do ar.

    O que acontece agora é que o java esta consumindo 90 % dos 2 nucleos da cpu,
    e 1673,20 MB of 2030,50 MB (82,4%) used de memoria java, com 423 sessoes abertas.
    Isto deixa o processo de conexão e navegação na pagina de administração lerdo.
    Não pode ser normal, pois o wildfire consumia 60 M de memoria e uma quantidade insignificante de cpu.

    Gostaria de continuar usando o openfire, pois me oferece varios recursos úteis que não são contemplados no wildfire.

    Caso alguem possa me ajudar ficarei grato desde entao, fico a disposição a informações...

    ResponderExcluir
  31. Tenho a versão 3.7 e no meu caso está dando erro, vc tem alguma dica?

    ResponderExcluir
  32. Nossa tinha quase 5 meses que estava atras do arquivo pra aumentar a memoria do java, consegui aqui valeus demaisssss, pra quem usa windows cira o arquivo sem extensão e so deixar sem extensão que vai sussa, valeu galera abraço.

    ResponderExcluir
  33. Alguém sabe dizer qual o limite máximo da memória java?

    Tentei colocar 2048 porém não consigo iniciar o serviço.

    Obrigado

    ResponderExcluir
    Respostas
    1. O Amigo deixa sem valor minim, deixa somente valor maixo...
      Comigo deixando minimo não subio

      Excluir
  34. Não consigo aumentar a memória java do Openfire 3.7.0. Aqui uso o Spar 2,6,3 como cliente. Fica sempre 247Mb de 248MB, 99%.

    ResponderExcluir