使用maven下载依赖包及maven常见问题汇总
首先确认堆占用
jmap 查看heap内存使用情况
jmap -heap pid
1
可以查看到MetaspaceSize,CompressedClassSpaceSize,MaxMetaSize
jmap和jdk版本有关系,有些jdk版本会查看不到内存信息,可以使用jstat来查看统计信息
jstat 收集统计信息
jstat -gc pid 1000
1
S0C/S0U S1C/S1U EC/EU CCSC/CCSU YGC/YGCT FGC/FCGT GCT
survivor0容量和使用 survivor1容量和使用 Eden jdk8是meta,以前应该是PC,PC young gc次数和耗时 full gc次数和耗时 total gc时间
排除掉heap的问题
分析堆外情况
NMT(native memory tracking)
使用
在JVM参数中添加
-XX:NativeMemoryTracking=[off | summary | detail]
-XX:NativeMemoryTracking=detail
1
在JVM运行过程中,使用jcmd获取相关信息
jcmd pid VM.native_memory [summary | detail | baseline | summary.diff | detail.diff | shutdown] [scale= KB | MB | GB]
jcmd pid VM.native_memory detail
1
baseline个基准,之后会输出diff参数,来和这个基线版本进行比较,可以两次的内存差
NMT报告会显示内存使用情况
类别 含义
Java Heap 堆大小
Thread 线程
Thread Stack 线程栈
更多参考:
https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr022.html
NMT可以得到线程栈大小,排除栈空间影响
pmap 查看进程内存地址空间
pmap -x pid | sort xx
1
可以结合pmap,和nmt得到内存地址空间。和堆外占用情况了
接下来需要做的就是分析堆外内存的内容了。
gdb dump查看内存空间内容
(gdb) dump binary memory ./file BEGIN_ADDRESS END_ADDRESS
1
将内存内容dump到文件中,就可以查看到文件中的内容了。
但是这种方式不直观,所以可以使用其他工具
gperf
google的,使用gperf2.5即可,网上很多安装都说一定要安装libunwind,其实都是瞎抄抄,老版本确实需要,2.5的版本不需要了。
https://blog.csdn.net/unix21/article/details/79161250
另外一个注意点就是虽然heap文件只有1M,但是可以分析出堆外内存的大小。
不过我在实际使用过程中,gperf并没有分析出实际的堆外内存情况,通过pmap可以看出堆外内存占用有几个G,但是gperf始终只有200M
Jemalloc
https://github.com/jemalloc/jemalloc/releases
安装
./configurate –enable-prof
make
sudo make install
1
2
3
配置
export LD_PRELOAD=/usr/local/lib/libjemalloc.so
export MALLOC_CONF=prof:true,lg_prof_interval:31,lg_prof_sample:17,prof_prefix:/output/jeprof
1
2
https://github.com/jemalloc/jemalloc/wiki/Getting-Started
最后分析是dubbo,rpc调用过程中,有很多的数据传输对象,而堆外内存大小又没有限制,导致内存持续飙高
使用maven下载依赖包及maven常见问题汇总的更多相关文章
- maven下载依赖包下载失败
在家办公,遇到项目的maven包下载不了,刚开始以为是vpn的问题,折腾半天反复确认之后没有发现什么问题. 同时试过阿里巴巴的maven仓库,删除过以来,重新导过包发现都不行. 后来在idea的设置里 ...
- Maven下载依赖包所使用的方法或者说三方包
wagon-http-3.2.0-shaded.jar 下载主要用的是这个包,mac位于路径/usr/local/Cellar/maven/3.6.0/libexec/lib下 如图,即使修改jar包 ...
- Maven - 解决Maven下载依赖包速度慢问题
通常我们会因为下载jar包速度缓慢而苦恼,这十分影响开发效率,以及程序员的心情,在IDE下载jar时,无法对IDE做任何动作,只能大眼对小眼. 下载jar速度慢究其原因就是因为很多资源都是国外的,我们 ...
- 解决IDEA Maven下载依赖包速度慢问题
右键项目,maven选项,"Open setting.xml"或"Create setting.xml",在 mirrors 节点添加下面代码. <mir ...
- Maven 无法下载依赖包的解决方法---三步dao!!!
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明. 本文链接:https://www.cnblogs.com/WLCYSYS/p/11932157.html maven 自动下载依赖包出现 ...
- maven项目如何从私服nexus中下载依赖包
maven项目如何从私服nexus中下载依赖包 解决方法: 1.打开maven的config目录中settings.xml文件 2.在<profile></profiles> ...
- 解决maven 在intellij IDEA 下载依赖包速度慢的问题
解决maven 在intellij IDEA 下载依赖包速度慢的问题 参考:https://www.jianshu.com/p/63a593700ebc
- IDEA 热部署 + 下载jar包放到maven中
IDEA 热部署: 1 : POM中加入devtools的依赖,就可以实现热部署 <dependency> <groupId>org.springframework.boot ...
- maven下载jar包源码配置
两个依赖,就想下mail的源码包,因该怎么 <dependencies> <dependency> <groupId>javax.mail</groupId& ...
随机推荐
- set and Sequence theory
https://en.wikipedia.org/wiki/Class_(set_theory) https://en.wikipedia.org/wiki/Zermelo%E2%80%93Fraen ...
- 套接字I/O模型-重叠I/O
重叠模型的基本设计原理是让应用程序使用重叠的数据结构,一次投递一个或多个WinsockI/O请求.针对那些提交的请求,在它们完成之后,应用程序可为它们提供服务.模型的总体设计以Windows重叠I/O ...
- 发现PDF Transformer+转换的图像字体小了如何处理
ABBYY PDF Transformer+转换的原始图像字体太小怎么办?为了获得最佳文本识别效果,请用较高的分辨率扫描用极小字体打印的文档,否则很容易在转换识别时出错.下面小编就给大家讲讲该怎么解决 ...
- HTTP缓存ETAG和Last-Modified
1) 什么是"Last-Modified"? 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文 ...
- 【转】CSS中怎么让DIV居中
来源:http://www.cnblogs.com/DebugLZQ/archive/2011/08/09/2132381.html CSS 如何使DIV层水平居中 今天用CSS碰到个很棘手的 ...
- PorterDuff.Mode error
Android PorterDuff.Mode error: PorterDuff cannot be resolved to a variable Answers: Add this t ...
- 【Android代码片段之八】监听Android屏幕是否锁屏
实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可以判断屏幕状态是否锁屏,但是只有屏幕状态发 ...
- getDimension,getDimensionPixelOffset和getDimensionPixelSize的一点说明
getDimension和getDimensionPixelOffset的功能类似, 都是获取某个dimen的值,但是如果单位是dp或sp,则需要将其乘以density 如果是px,则不乘.并且get ...
- DUBBO本地搭建及小案例
DUBBO的介绍部分我这里就不介绍了,大家可参考官方文档. DUBBO的注册中心安装 DUBBO的注册中心支持好几种,公司用到zookeeper注册中心,所以我这边只说明zookeeper注册中心如何 ...
- spring mvc 利用匿名内部类构建返回json对象
@RequestMapping(value = "/order/findOrderByIdVague/{noId}.json", method = {RequestMethod.G ...