`
lionzm
  • 浏览: 12480 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jmap查看java进程占用的数据库连接数

    博客分类:
  • java
阅读更多
背景:开发中时长会出现无法连接数据库的错误,怀疑应该是不是打开的连接数过多而导致。本例中通过jmap打印虚拟机堆栈信息中的连接数来确定进程所占用的数据库(oracle)连接数。
1.查看当前数据库的连接数
  select count(*) from v$session;
2.启动30个线程同时查询数据库(连接池中最大允许50个连接),但所有线程再并未关闭连接
for (int i=0;i<30;i++){
	        	Runnable r = new Runnable(){
					@Override
					public void run() {
						Connection con = null;
						Statement stm = null;
						try {
							con = DataBasePool.getConnection();
							stm = con.createStatement();
							stm.execute("select * from tt_bar_track t");
							
							Thread.currentThread().sleep(10000);
						} catch (Exception e) {
							throw new RuntimeException("exec error", e);
						} finally {
							//DataBasePool.close(con, stm);
						}
					}
		        	
		        };
		        Thread t = new Thread(r);
		        t.start();
		        
	        }

  3.查看此时的数据库连接数增加了30个
    select count(*) from v$session;
  4.使用jmap (jmap -histo:live pid )查看此时的java所有对象数量,找T4CConnection的个数为30。


  结论:使用jmap看T4CConnection的数量即为该java进程占用的数据库连接数
分享到:
评论

相关推荐

    JAVA进程占用高内存缘由分析与优化方法_.docx

    ps 命令可以查看进程的虚拟内存大小(VSZ)和实际占用的物理内存大小(RSS)。从 ps 的输出结果可以看到,Java 进程的虚拟内存大小是 7.4GB,实际占用的物理内存大小是 2.9GB。这说明 Java 进程的虚拟内存大小远远...

    使用jmap分析Java程序性能问题

    ### 使用jmap分析Java程序性能问题 在Java开发与维护过程中,经常遇到与内存相关的性能问题及故障。这些问题包括但不限于内存泄漏、频繁的垃圾回收、内存溢出等,它们不仅影响程序的稳定运行,还可能导致服务中断。...

    JAVA 进程在64位LINUX下占用巨大内存的分析.doc

    JAVA 进程占用巨大内存的分析 在 64 位 LINUX 系统上,JAVA 进程的内存占用是一个非常重要的问题。根据给定的文件信息,我们可以看到,JAVA 进程在 64 位 LINUX 下占用了巨大内存,达到 11G,已分配地址空间更是 17...

    dearxuany#Sharon_Technology_learning_note#java 进程内存使用率高 jmap 排查方

    jmap 排查 java 进程内存使用率高步骤glances 找出服务器中 CPU 占用率高的进程临时修改程序用户的 shell 为可登录用户并切换到该用户注意

    java使用JMAP定位代码内存泄漏在哪

    1. **生成堆转储文件**:通过`jmap -dump:format=b,file=&lt;filename&gt; &lt;pid&gt;`命令,我们可以从运行中的Java进程生成一个heap dump文件,这个文件包含了Java堆内存的所有信息。 2. **查看堆概要**:`jmap -histo:live ...

    Kubernetes应用java程序无法使用jmap,jstack的解决方案.docx

    这种情况下,无法获取 Java 进程的 pid,导致无法使用 jmap 和 jstack 命令。 解决方案: 1. 了解 Linux 特殊进程 在 Linux 系统中,有一些特殊的进程,例如 pid=1 的 init 进程、pid=2 的 kthreadd 进程等。这些...

    Java虚拟机调优及问题排查手册.docx

    例如,使用wmic process命令可以查看当前的数据库连接进程: ``` wmic process where caption="python.exe" get processid,caption,commandline /value ``` 使用netstat命令可以查看当前的网络连接情况: ``` ...

    java诊断与调优常用命令jmap、jstack、jstat使用实战.pdf

    `jmap -histo [进程ID]` 可以按类型统计对象数量和占用的空间,有助于发现潜在的内存泄漏问题。此外,`jmap -dump:format=b,file=filename.dump [进程ID]` 可以生成堆转储文件,便于进一步的内存分析。 3. **jstack...

    Java在面试中的高频考点Java基础、Java集合、Java多线程与并发编程、Java虚拟机、数据库、计算机基础、框架和中间件

    5. **数据库**:虽然Java面试主要关注编程技能,但对数据库的基本操作和设计也是必不可少的。MySQL、Oracle、SQL Server等关系型数据库的查询优化、事务管理、索引原理、数据库设计范式等是常考知识点。 6. **...

    Java中常用的Linux命令.docx

    1. 查看进程:`ps` 命令可以查看当前运行的进程,例如,`ps -ef | grep tomcat` 查看所有有关 tomcat 的进程。 2. 终止进程:`kill` 命令可以终止进程,例如,`kill -9 19979` 终止线程号位 19979 的进程。 网络...

    jmap Eclipse内存分析工具.rar

    首先,`jmap`是Java HotSpot虚拟机的一个命令行工具,它允许开发者查看堆内存的详细信息,包括堆的大小、分配情况以及对象的详细统计。`jmap`的一些主要功能有: 1. **生成堆转储(Heap Dump)**: 使用`jmap -dump`...

    JVM-Tomcat线程-数据库连接池设置建议.docx

    - 使用命令 `jmap -heap &lt;pid&gt;` 来查看堆内存的使用情况。 - 通过对堆内存的监控,我们可以更好地理解内存使用情况,并据此调整JVM参数。 #### 二、Tomcat线程设置 在配置Tomcat的线程池时,也需要考虑服务器...

    java查看哪个进程切换频繁上下文.zip

    标题"java查看哪个进程切换频繁上下文"提示我们关注的是如何在Java环境中监控进程的上下文切换情况。这里有两个主要的命令工具可以帮助我们实现这一目标: 1. **pidstat**:这是一个Linux系统工具,能够提供关于...

    【转】Java内存泄露_JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat

    开发者可以通过jconsole连接到本地或远程的Java进程,直观地看到各种性能指标,并进行诊断。此外,jconsole还支持设置告警阈值,当内存使用超过预设值时会触发告警,提醒开发者关注可能存在的内存泄漏。 `jinfo`...

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解.docx

    jstack 主要用来查看某个 Java 进程内的线程堆栈信息。语法格式如下:jstack [option] pid 或 jstack [option] executable core 或 jstack [option] [server-id@]remote-hostname-or-ip。指令行参数选项解释如下: ...

    jmap工具~MA.zip

    《深入解析Java jmap工具与内存分析》 在Java开发中,内存管理和性能优化是至关重要的环节。"jmap"工具作为Java虚拟机(JVM)的一部分,为开发者提供了强大的内存分析功能,尤其是在处理内存溢出和理解Java运行时...

    Java内存泄露_JVM监控工具介绍

    在Java中,内存泄露的原因非常多样,例如,静态变量、循环引用、数据库连接池、Session溢出等等。为了检测和解决Java内存泄露问题,Java提供了多种工具和命令来帮助开发者快速地定位和解决问题。本文将介绍Java内存...

    性能测试常用命令.doc

    * 查看 Java 进程的 heap 内存使用情况:jmap -heap * 生成 Java 进程的内存快照:jmap -dump:format=b,file=&lt;filename&gt;.hprof * 查看 Java 进程的栈信息:jstack -l 五、其它命令 最后,以下是一些其它常用的...

    Java性能调优命令

    例如,`jstack pid`命令用于查看进程id为pid的Java线程的堆栈信息。 4. jmap命令用于观察运行中的JVM物理内存的占用情况。它能打印出每个class的实例数目、内存占用和类全名信息。此外,jmap命令还可以将Java进程的...

Global site tag (gtag.js) - Google Analytics