springcloud项目占用内存好几个G导致服务器崩溃的问题

问题描述

springcloud项目部署或调试时,占用的内存特别多。当部署到服务器上去后,有可能导致服务器内存占用过多而崩溃。

解决方案

1.本地调试时,IDEA中添加参数以减少本地内存使用

按照下图点击,添加参数 -Xms64m -Xmx128m

2.远程上线时,命令行添加参数 2.1单个服务直接部署

例如使用nohup执行时,在java与-jar之间添加参数-Xms64m -Xmx128m

nohup java -Xms64m -Xmx128m -jar x.xx-xx.jar &

2.2对每个服务使用dockerFile编排

FROM java:8
COPY *.jar /security.jar
CMD ["--server.port=8080"]
EXPOSE 8080

ENTRYPOINT ["java","-Xms64m","-Xmx256m","-jar","security.jar"]

这是一个完整的dockerfile文件,最后一行中添加的两个参数用于控制内存大小

参数详解

设置JVM内存的参数有四个:

-Xmx: Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-Xms: Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

-Xmn: Java Heap Young区大小,不熟悉最好保留默认值;

-Xss: 每个线程的Stack大小,不熟悉最好保留默认值;

到此这篇关于springcloud项目占用内存好几个G导致服务器崩溃的问题的文章就介绍到这了,更多相关springcloud占用内存过高内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅析springcloud 整合 zipkin-server 内存日志监控

    Zipkin Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开发贡献.其主要功能是聚集来自各个异构系统的实时监控数据. Zipkin主要包括四个模块  - Collector           接收或收集各应用传输的数据  - Storage            存储接受或收集过来的数据,当前支持Memory,MySQL,Cassandra,ElasticSea

  • 详解SpringCloudGateway内存泄漏问题

    SpringCloudGateway内存泄漏问题 项目完善差不多,在进入压力测试阶段期间,发现了gateway有内存泄漏问题,问题发现的起因是,当时启动一台gateway,一台对应的下游应用服务,在压力测试期间,发现特别不稳定,并发量时高时低,而且会有施压机卡住的现象,然后找到容器对应的宿主机,并使用container stats命令观察内存,经过观察发现,压力测试时内存会暴涨,并由于超过限制最大内存导致容器挂掉(这里由于用的swarm所以会自动选择节点重启)最终发现由于之前测试服务器配置低,所

  • springcloud项目占用内存好几个G导致服务器崩溃的问题

    问题描述 springcloud项目部署或调试时,占用的内存特别多.当部署到服务器上去后,有可能导致服务器内存占用过多而崩溃. 解决方案 1.本地调试时,IDEA中添加参数以减少本地内存使用 按照下图点击,添加参数 -Xms64m -Xmx128m 2.远程上线时,命令行添加参数 2.1单个服务直接部署 例如使用nohup执行时,在java与-jar之间添加参数-Xms64m -Xmx128m nohup java -Xms64m -Xmx128m -jar x.xx-xx.jar & 2.2对

  • w3wp.exe进程占用内存过高解决方法

    w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行.这个进程用来分配大量的系统资 今天研究了一下,可以做以下配置: 1.在IIS中对每个网站进行单独的应用程序池配置.即互相之间不影响. 2.设置应用程序池的回收时间,默认为1720小时,可以根据情况修改.同时,设置同时运行的w3wp进程数目为1.再设置当内存或者cpu占用超过多少,就自动回收内存 一般来说,这样就可以解决了.但仍然会出现个别网站因为程序

  • 由static_cast和dynamic_cast到C++对象占用内存的全面分析

    static_cast和dynamic_cast是C++的类型转换操作符.编译器隐式执行的任何类型转换都可以由static_cast显式完成,即父类和子类之间也可以利用static_cast进行转换.而dynamic_cast只能用于类之间的转换.那么dynamic_cast的存在还有什么意义呢?因为dynamic_cast提供了一个重要的特性:运行时类型检查来保证转换的安全性. 用static_cast转换存在的危险 我们知道,一个基类指针不需要进行明确的转换操作,就可以指向基类对象或者派生类

  • python 基本数据类型占用内存空间大小的实例

    python中基本数据类型和其他的语言占用的内存空间大小有很大差别 import sys a = 100 b = True c = 100L d = 1.1 e ="" f = [] g =() h = {} i = set([]) print " %s size is %d "%(type(a),sys.getsizeof(a)) print " %s size is %d "%(type(b),sys.getsizeof(b)) print

  • java应用占用内存过高排查的解决方案

    故障:收到服务器报警,内存使用率超过80% 1.查看 使用dstat和top查看内存使用最高的应用 使用dstat 查到内存占用最高的是java应用,使用2253M内存,但是这台服务器跑了好几个java,具体哪个进程使用top看下资源情况 使用top 可以看到java应用整体内存使用率超过了70%,其中pid为16494的进程 一个应用占了28.7的内存 2.定位线程问题 使用ps查看16494的线程情况 命令:ps p 16494 -L -o pcpu,pmem,pid,tid,time,tn

  • java boolean占用内存大小说明

    答案:4B或1B 详细 1.如果boolean是单独使用:boolean占4个字节. 2.如果boolean是以boolean数组形式使用:boolean占1个字节 解释 1.JVM没有提供boolean类型专用的字节指令,而是使用int相关指令来代替. 2.对boolean数组的访问与修改,会共用byte数组的baload和bastore指令. 分析结论 上面的第一个结论是说:boolean在底层实际调用int,那么既然int占4个字节,boolean页自然占4个字节.即 boolean类型占

  • 设置Redis最大占用内存的实现

    目录 打开redis配置文件 我们可以在CentOS下输入命令:find / -name redis查找redis目录: Redis使用超过设置的最大值 使用info命令查看Redis内存使用情况 Redis需要设置最大占用内存吗?如果Redis内存使用超出了设置的最大值会怎样? 打开redis配置文件 找到如下段落,设置maxmemory参数,maxmemory是bytes字节类型,注意转换.修改如下所示: # In short... if you have slaves attached i

  • JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案

    一个简单的利用正则判断输入是否为数字: input1 = '0281234567';input2 = '0282345678';var reg = /^\d+$/g; reg.test(input1); //true reg.test(input2); //false 发现第二次test的时候返回的值不对了.排除书写错误,取值失败等等各种干扰因素后,发现仅仅是reg正则第二次执行的时候就无法正确执行了.之前并未遇到过这个问题,便搜索了一下相关信息. 原来这个问题实际上是/g导致的,而此时也才发现

  • Android图片占用内存全面分析

    曾经有一个朋友问过我一个问题, 一张512*512  150KB PNG格式图片和一张512*512 100KB 压缩比是8的JPG格式的图片,加载到内存中,也就是加载到一个Bitmap中,哪个占用的内存大? 这个问题似乎有点难回答,测试一下就知道了. 好了,按照要求我准备了三张图片, 1. 512*512px, 114KB, PNG 2. 512*512px, 138KB, JPG ,压缩比 12 3. 512*512px, 57KB, JPG,压缩比 8 接下来是写一个Demo,一个Bitm

  • SpringCloud项目集成Feign、Hystrix过程解析

    这篇文章主要介绍了SpringCloud项目集成Feign.Hystrix过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Feign的功能:这是个消费者,根据服务注册在Eureka的ID去找到该服务,并调用接口 Hystrix的功能:熔断器,假如A服务需要调用B服务的/cities接口获取数据,那就在A服务的controller里声明@HystrixCommand,如果B服务的/cities接口挂了,就返回一个自定义的值 项目结构 [r

随机推荐