Json OutPutScream estouro Swap Servidorr

Bom dia Pessoal!

Estou com uma dúvida, estou gerando um JSON via uma requisição HTTP, o problema é que toda vez que eu chamo essa URL.
Gera o JSON corretamente, mais a memória do servidor vai aumentando cada vez mais, parece que ela carrega e não descarrega, consequentemente carrega swap e o jboss cai.

Alguém poderia me ajudar?

Existe uma maneira melhor de fazer isso?

OBS: O arquivo que gera tem aproximadamente 30MB

Valeu.

Servlet:

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        OutputStream outPutScream = response.getOutputStream();
        try {

               //Para todas as URLs que retorna um JSON colocar essa tag
               response.resetBuffer();
               response.setContentType("application/json");
               response.setCharacterEncoding("UTF-8");
               response.setHeader("Content-Disposition", "attachment; filename = arquivo.json");

               //Sincronizacao Cadastro de Integrantes
               byte[] dados = obterDados();
               outPutScream.write(dados);  

            }

        } catch (Exception e) {
            out.print("Erro: "+e.getMessage())
        } finally {
            outPutScream.close();
        }

   }