Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm  Gen (Non-heap memory) space remains. It is strongly recommended that you exit and restart MyEclipse with new virtual             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-12 08:37:29
                            
                                89阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            摘要: 概述 广义的堆外内存 说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-XX:MaxPermSize来指定持久概述广义的堆外内存说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-29 02:00:27
                            
                                412阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            NMON介绍Nmon 工具是 IBM 提供的用于Linux系统的性能监控工具,可以提供CPU/内存/网络/硬盘灯监控数据,并且可利用excel分析工具nmonanalyser进行数据的统计分析,形成图表。实时监控把nmon文件用ftp上传到Linux服务器的某个目录下,先修改nmon文件的可执行权限chmod 755 nmon。直接执行nmon或者            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-20 22:22:09
                            
                                39阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            说在前面的话朋友,你经历过部署好的服务突然内存溢出吗?你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗?你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗?我知道,你有过!但是我还是要来说说我的故事.................. 背景:有一个项目做一个系统,分客户端和服务端,客户端用c++写的,用来收集信息然后传给服务端(客户端的数量还是比较多的,正常的有几千个),服            
                
         
            
            
            
            如下命令,即可测试:不断调整n的值,windows上32位的1.6x为: 1610m java -Xmx1610M -versionTomcat内存溢出解决方案 tomcat内存溢出的原因:  在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存溢出是不一样的,当然处理方式也不一样。   这里根据平时遇到的情况和相关资料进行一个总结。常见的一般会有下面三种情况:   1.            
                
         
            
            
            
            一、arthas上篇文章我们讲解了使用arthas在线上环境排查定位内存占用过大、cpu使用率过高等问题,本篇文章继续使用arthas监测线上系统的运行信息,以及排查程序运行缓慢等问题。二、监测线上系统的运行信息在生产环境不像本地使用idea运行,可以随时进行debug,那生产环境我们要监控程序运行到某一个方法的入参和出参时要怎么办呢?此时我们可以通过打印日志的方式,将我们想要查看的信息都使用lo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-03 09:24:16
                            
                                1471阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            概述之前写过篇文章,关于堆外内存的,JVM源码分析之堆外内存完全解读,里面重点讲了DirectByteBuffer的原理,但是今天碰到一个比较奇怪的问题,在设置了-XX:MaxDirectMemorySize=1G的前提下,然后统计所有DirectByteBuffer对象后面占用的内存达到了7G,远远超出阈值,这个问题很诡异,于是好好查了下原因,虽然最终发现是我们统计的问题,但是期间发现的其他一些            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-22 10:49:51
                            
                                723阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。 从Arthas上个版本发布,已经过去两个多月了,Arthas 3.1.0版本不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍。Github: https://github.com/alibaba/arthas
文档:https://alibaba.github.io/arthas
在线教程在新版本            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-18 22:03:52
                            
                                326阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 介绍2. 下载和入门3. 案例分析4. 启动 Arthas5. 仪表盘6. 分析堆栈跟踪7. 反编译Java类8. 搜索类和搜索方法9. 监视方法调用10. 监控方法参数11. 分析器12. 总结今天给大家介绍一款调优神器 -- 阿里巴巴Arthas,可以帮助你的应用释放潜力。1. 介绍阿里巴巴 Arthas 是一个诊断工具,可以用于监视、分析和解决 Java 应用程序的问题。使用 Arth            
                
         
            
            
            
            线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些「JVM内存分配的原理分析」以及「常用的JVM问题排查手段和工具分享」,希望对大家有所帮助。在整个排查过程中,我也走了不少弯路,但是在文章中我仍然会把完整的思路和想法写出来,当做一次经验教训,给后人参考,文章最后也总结了下内存泄漏问题快速排查的几个原则。「本文的主要内容:」故障描述和排查过程故障原因和解决方案分析JVM堆内内存和堆外内存分配原            
                
         
            
            
            
             一、堆外内存组成通常JVM的参数我们会配置-Xms 堆初始内存 -Xmx 堆最大内存 -XX:+UseG1GC/CMS 垃圾回收器 -XX:+DisableExplicitGC 禁止显示GC -XX:MaxDirectMemorySize 设置最大堆外内存,默认是-xmx-survivor,也就是基本上和-xmx大小相等 -Xss:每个线程的堆栈大小,默认1M -Xmn: 年轻代大小(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-19 09:44:31
                            
                                2189阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            背景最近准备上线cassandra这个产品,同事在做一些小规格ECS(8G)的压测。压测时候比较容易触发OOM Killer,把cassandra进程干掉。问题是8G这个规格我配置的heap(Xmx)并不高(约6.5g)已经留出了足够的空间给系统。只有可能是Java堆外内存使用超出预期,导致RES增加,才可能触发OOM。调查过程0.初步怀疑是哪里有DirectBuffer泄漏,或者JNI库的问题。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-19 12:49:08
                            
                                122阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            堆内存泄漏排查起因正在调试接口服务,突然发现控制台出现OOM的异常,这让我有点吃惊。这个服务在线上的内容一直是非常正常的,这次新开发了两个接口就导致OOM了?3G的堆内存就被这两个接口占用了?而且我还只是调用几次,不至于导致OOM啊。除了OOM的错误外还有前不久接的微能力报的错误,错误如下:Caused by: com.ppdai.infrastructure.radar.biz.common.u            
                
         
            
            
            
            # Java 查看堆外内存占用
在 Java 应用程序中,内存管理是一个重要的话题。Java 虚拟机(JVM)通过堆内存来存储对象实例和数组,但是对于一些特殊的情况,我们需要使用到堆外内存。
堆外内存是指不受 JVM 堆内存管理的直接内存,也称为非堆内存。它是通过使用 `ByteBuffer` 类来分配和访问的。使用堆外内存的一个常见场景是在进行网络数据传输或者进行文件 IO 操作时,可以提高            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-09 09:08:15
                            
                                1062阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            JVM可以使用的内存分外2种:堆内存和堆外内存.堆内存完全由JVM负责分配和释放,如果程序没有缺陷代码导致内存泄露,那么就不会遇到java.lang.OutOfMemoryError这个错误。使用堆外内存,就是为了能直接分配和释放内存,提高效率。JDK5.0之后,代码中能直接操作本地内存的方式有2种:使用未公开的Unsafe和NIO包下ByteBuffer。关于Unsafe对象的简介和获取方式,可            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-05 13:49:40
                            
                                44阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ## Java查看堆外内存配置
### 1. 简介
在Java开发过程中,我们经常需要管理和监控内存的使用情况。除了Java堆内存,还存在一种称为堆外内存(off-heap memory)的内存空间。堆外内存是指位于Java虚拟机堆之外的、由本地操作系统分配和管理的内存空间。在某些场景下,使用堆外内存可以提供更高的性能和更低的内存占用。
本文将介绍如何查看Java堆外内存的配置,并提供相应的            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-18 11:08:29
                            
                                420阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 项目方案:如何查看Java堆外内存
## 1. 项目背景
在Java应用程序中,除了堆内存外,还会使用到堆外内存。堆外内存通常用于存储一些大数据、非Java对象等,比如NIO的直接内存、JNI中的本地内存等。在应用程序运行过程中,需要时常监控和查看堆外内存的使用情况,以及可能出现的内存泄漏等问题。
## 2. 目标
设计一个工具或方案,能够方便地查看Java应用程序的堆外内存使用情况,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-05-20 03:42:49
                            
                                289阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Java查看堆外内存对象
在Java应用程序中,内存管理是一个重要的方面。Java虚拟机(JVM)通过自动内存管理来处理Java对象的分配和释放。JVM会将Java对象分配在堆内存中,但有时也会使用堆外内存来存储一些特殊的对象。
## 什么是堆外内存?
堆外内存是指分配在JVM堆外的内存。JVM堆外内存是通过`java.nio.ByteBuffer`类来分配的。它是Java NIO(Ne            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-31 12:06:52
                            
                                78阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。可以使用jmap生成Heap Dump。java m            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-17 11:50:10
                            
                                85阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、arthas上篇文章对arthas的安装以及指令做了展示,可以感觉出arthas提供的指令还是挺多的,上篇文章没有对指令进行过多的演示,目的是大家在学习arthas后,就可以在上篇文章或者官方文档中统一查找定位使用哪个指令了,本篇文章借助arthas排查应用内存使用过大、线程cpu使用率高问题,可以加深大家对arthas指令的理解。下面是上篇文章的地址:二、排查应用内存使用过大、或者内存溢出问            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-12 05:58:31
                            
                                10000+阅读
                            
                                                                             
                 
                
                                
                    