Byteman可以在目标程序运行后进行注入,命令如下运行后注入1.查看java进程,找到目标进程的pidjps2.安装pidbminstall <pid>3.装载规则脚本bmsubmit -l tracing.btm//指定监听端口默认是9091//bmsubmit -p <port> -l tracing.btm4.卸载规则脚本bmsubmi
分类:
编程语言 时间:
2018-05-03 15:24:16
阅读次数:
608
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。 Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要 ...
分类:
其他好文 时间:
2018-04-14 15:33:06
阅读次数:
197
jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps、top、printf、jstack、grep。 第一步先找出Java进程ID,服务器上的Jav ...
分类:
编程语言 时间:
2018-04-02 15:58:30
阅读次数:
157
现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Conten ...
分类:
Web程序 时间:
2018-03-31 15:11:49
阅读次数:
218
1、获取pid lsof -i:port 2、根据获取到pid,查看gc的相关信息 jstat -gc pid 2000 5 查看gc信息,每两秒刷新一次,总刷新五次。其相关熟悉列举如下: S0C:Survivor0 的容量 S1C:Survivor1, 与S0C一样 S0U: Survivor0 ...
分类:
编程语言 时间:
2018-03-30 12:16:46
阅读次数:
255
查看整个JVM内存状态 jmap -heap [pid]要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起 查看JVM堆中对象详细占用情况jmap -histo [pid] 只打印活跃对象 jmap -histo[:live] <pid> 导出整个JVM ...
分类:
其他好文 时间:
2018-03-23 15:23:06
阅读次数:
128
Jmap:可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内 ...
分类:
编程语言 时间:
2018-03-21 15:03:05
阅读次数:
223
本文目录 线程与多线程 线程的运行与创建 线程的状态 线程与多线程 线程的运行与创建 线程的状态 1 线程与多线程 线程是什么? 线程(Thread)是一个对象(Object)。用来干什么?Java 线程(也称 JVM 线程)是 Java 进程内允许多个同时进行的任务。该进程内并发的任务成为线程(T ...
分类:
编程语言 时间:
2018-03-08 00:07:51
阅读次数:
123
问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。 解决过程: 1、根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。 2、找到该进程后,如何定位具体线程或代码呢,首 ...
分类:
其他好文 时间:
2018-02-27 01:05:50
阅读次数:
187