一次JVM内存调整
单台服务器8G内存,2核
系统里装了redis, rocketmq, mysql, zookeeper, 还有20个左右的微服务,每个微服务的jvm 参数 -Xms128m -Xmx256m -Xmn64m -XX:PermSize=64m -XX:MaxPermSize=128m
redis,rocketmq,zookeeper 基本是用最小配置
执行free 只有100m左右的free内存,经常执行一些java命令就返回无法分配内存错误
通过ps -aux|sort -4knr|head -10 查看10个最占用内存的进程, 基本占用内存比是5%左右(300多M)
PS:300m是我们使用的堆内存(128m or 256m)+ 非堆内存(64m)
PS2:如果内存剩余不到40%,JVM就会增大堆到Xmx设置的值,内存剩余超过70%,JVM就会减小堆到Xms设置的值, 所以可能是128M,也可能是256M
由于这些微服务使用频率不会太高,特别一些CMS服务的微服务,占用内存低,使用内存低,即使GC STW也影响不大,决定要调整参数,为系统腾出更多内存
通过 jstat -gc pid命令,可以看每个java进程的内存(新生代,老年代,永久代)的使用状况, 发现不少老年代都占用100M以上,调整JVM参数为 -Xms128m -Xmx128m -Xmn64m -XX:PermSize=64m -XX:MaxPermSize=64m
一次JVM内存调整的更多相关文章
- JVM内存调整
JVM内存调整 先试着调整一下idea的 找到软件安装位置/bin/idea64.exe.vmoptions 给他直接整个起飞的,改成 -Xms512m -Xmx1500m 找到Java安装的位置/j ...
- jvm 内存调整
top查看java占用的内存比较多 top - :: up days, :, user, load average: 0.03, 0.05, 0.05 Tasks: total, running, s ...
- JBoss - 调整JVM内存 -Xms512m -Xmx1024m
$JBOSS-HOME/server/下有3个目录,all/default/minimal,它们是表示3种配置,全部的配置.默认配置.最小配置,我们在启动JBOSS服务时,可以指定 run –c al ...
- javaweb学习总结九(xml解析以及调整JVM内存大小)
一:解析XML文件的两种方式 1:dom,document object model,文档对象模型. 2:sax,simple API for XML. 3:比较dom和sax解析XML文件的优缺点 ...
- Java SE之调整JVM内存笔记
[文档整理系列] Java SE之调整JVM内存笔记 一般JVM内存限制是64Mbyte Eclipse下 Run as configrationArguments选项:-Xmx80m [设置虚拟机 ...
- JVM内存限制和调整
今天用java -jar执行一个jar文件提示内存不够,需要设置虚拟机的堆大小.以下是参考资料: 堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行 ...
- 调整JVM内存大小
首次运行公司项目,出现了内存溢出,具体出现java.lang.OutOfMemoryError: PermGen space和java.lang.OutOfMemoryError:GC overhea ...
- Java调整JVM内存大小——(八)
JVM内存大小是有限的,有的时候程序过大时候会导致超出最大内存,产生下面异常: Exception in thread "main" java.lang.OutOfMemoryEr ...
- JVM内存管理------垃圾搜集器参数精解
本文是GC相关的最后一篇,这次LZ只是罗列一下hotspot JVM中垃圾搜集器相关的重点参数,以及各个参数的解释.废话不多说,这就开始. 垃圾搜集器文章传送门 JVM内存管理------JAVA语言 ...
随机推荐
- 【数据库】MFC ODBC(四)
7.滚动记录 CRecordset提供了几个成员函数用来在记录集中滚动.当用这些函数滚动到一个新记录时,框架会自动地把新记录的内容拷贝到域数据成员中. void MoveNext( ); //前进一个 ...
- maven多环境配置
我们在开发项目的时候,往往会有好几个环境.比如开发.预发布(测试).产品,每个环境一般用到配置都不一样,最典型的就是数据库,开发的数据库与产品的数据库肯定是不一样的,如果要多个环境的切换就得改配置,这 ...
- L208
A hundred years ago it was assumed and scientifically “proved” by economists that the laws of societ ...
- C#读写基恩士PLC 使用TCP/IP 协议 MC协议
本文将使用一个Github开源的组件库技术来读写基恩士PLC数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 g ...
- 在WisOne平台上学习TypeScript
TypeScript是微软公司推出的开源的类型化脚本语言,目的是用于为弱类型的javaScript提供强类型的识别和感知功能,同时它提供了类.接口.继承等相关在javaScript中不容易实现的功能, ...
- Linux基础和网络管理上机试题 - imsoft.cnblogs
一.(使用at命令实现任务的的自动化,要求用一条条的指令完成) 找出系统中任何以txt为后缀名的文档,并且进行打印.打印结束后给用户foxy发出邮件通知取件.指定时间为十二月二十五日凌晨两点 ...
- 20155220 2016-2017-2 《Java程序设计》第九周学习总结
20155220 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity)即java数据库连接,是一种用 ...
- linux环境下编译php扩展
1.使用ext_skel工具生成扩展框架 ./ext_skel --extname=myext 2.编辑config.m4文件 cd myext/vim config.m4 去掉以下内容的注释: PH ...
- POJ 3253 Fence Repair STL 优先队列
这题做完后觉得很水,主要的想法就是逆过程思考,原题是截断,可以想成是拼装,一共有n根木棍,最后要拼成一根完整的,每两根小的拼成一根大的,拼成后的木棍长度就是费用,要求费用最少.显然的是一共会拼接n-1 ...
- Win7不能用鼠标双击运行jar文件怎么办?
Java应用程序jar文件可以由 JVM(Java虚拟机)直接执行,只要操作系统安装了JVM便可以运行作为Java应用程序的jar文件,其跨平台特性使得很多工具软件都用jar方式来部署分发,比如用于H ...