Webservice rest

13 respostas Resolvido
J

oi pessoal, tenho uma aplicação que utiliza web service rest (xml) para troca de mensagens.A questão é que percebi que está consumindo muita memoria do servidor. Alguem sabe como faço para amenizar esse gasto todo?
Será que tem algo que posso fazer para melhorar a performance?

Ah, eu já ativei a compressão GZIP no servidor.

13 Respostas

guivirtuoso

Primeiramente você tem que identificar qual processamento é feito p/ que o aumento de memória ocorra…

Escrita em disco?
Acesso à uma outra máquina?
Gravação no banco de dados que está na mesma máquina?

Onde é o gargalo?

A partir desta descoberta é que você vai poder pensar em como melhorar… fora isso… vão ser só especulações…

Abs

J

no caso, a comunicação é feita com um banco de dados, e está na mesma maquina.

igomes

Esse servidor é linux/windows ?

J

linux - centOs 6.5

igomes

se vc der um top, qual o processo que está com o maior consumo ?

J

o glassfish onde ta rodando ws

igomes

e se vc tirar o ws do container o processo do glassfish cai certo ?

J

eu percebo que sobe mto o processamento e é como se o garbage collector não conseguisse aliviar.
Mesmo a requisição sendo rapida, e liberando os recursos.

Se eu tirar, dai não consigo testar kkkkk

igomes

Bom, quem usa esse ws, está liberando os recursos ?

J
Solucao aceita

tive q aumentar a capacidade do servidor… porque o acesso ao ws era grande, e o GF estava usando mais memoria. Aumentei memoria e configurei a memoria swap

javaflex

Glassfish pra Webservice REST é canhão pra matar mosquito. Claro que tudo que está usando na aplicação também pode influenciar, bombas como EJB, Hibernate/JPA (quando se abusa), etc. Se mais tarde precisarem usar servidor na nuvem, quanto menos recursos usar melhor para pagar menos mensalmente.

Por solução rápida já mudaria pra um container web Tomcat. Java é pesado por natureza, mas usar soluções leves pra web como por exemplo SpringBoot, e se puder, SQL nativo, já melhora bastante a situação.

J

mas o glassfish não fica dedicado somente para o webservice. Ele tem outras aplicações que fazem uso dos recursos (hibernate/jpa, queue, ejb, jms, etc).

Por solução rápida já mudaria pra um container web Tomcat. Java é pesado por natureza, mas usar soluções leves pra web como por exemplo SpringBoot, e se puder, SQL nativo, já melhora bastante a situação.

Acho que tudo isso depende mto do que precisa ser feito. O tomcat funciona e ajuda em partes.
Mas dai ser uma “grande” solução…tb eu já acho exagero.

javaflex

Deixei claro que não é “só tomcat”, não escrevi só isso no post, ainda mais dizer que é grande solução. Usar um web container como o tomcat seria só o item mais rápido de mudar com menor mexida no código para começar a emagrecer sua infra, logicamente para o web service. Como você não especificou quase nada, pode ser qualquer coisa, até mesmo problema de programação.

Criado 29 de janeiro de 2016
Ultima resposta 13 de jul. de 2016
Respostas 13
Participantes 4