![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 52
iteye_1169
这个作者很懒,什么都没留下…
展开
-
jmap -dump 导致gc
jmap -dump这种方式会在dump前产生一次GC,这样会导致一些Unreachable objects,无法分析他们的引用路径。原创 2011-08-11 14:04:26 · 1382 阅读 · 1 评论 -
ulimit 放开用户限制 生成core文件
ulimit -a 用来显示当前的各种用户进程限制。 Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况, 设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个: ulimit -u 10000 对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言, 最好通过使用 ...原创 2012-09-12 10:04:40 · 449 阅读 · 0 评论 -
coredump使用方法
Linux系统下程序出错时会自动生成一个core文件,该文件包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。下面简单介绍coredump使用方法。1. coredump的开关和core文件大小限制首先检查生成core文件的选项是否打开ulimit –c (查看core dump文件的大小,一般开始是0)0 (表示coredump开...原创 2012-09-12 10:02:48 · 231 阅读 · 0 评论 -
一个java crash的故障分析过程
一个应用在周五出现java进程消失,没有任何日志。先查看/var/log/message中无oom_killer信息,所以只能拿core。该应用是一个集群,通知他们将出现crash的服务器上打开ulimit,等待生成core文件 。今天周一,下午应用负责人紧急找我,说同时出几台crash了。开了ulimit参数的那台服务器coredump已经生成。登录到该服务器上,先是gdb $...原创 2012-09-12 09:55:42 · 127 阅读 · 0 评论 -
Linux 系统设置 ulimit 以及 Core文件的生成
查看限制情况 ulimit -a可以看到如下信息core file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedfile size (blocks, -f) unlimitedpending signals (-i) 10...原创 2012-09-12 09:55:01 · 115 阅读 · 0 评论 -
Java调用外部程序技巧
前些天使用Java调用外部程序的时候,发现线程会堵塞在waitfor()方法。调用方法如下:Process process = Runtime.getRuntime().exec(cmd);process.waitfor();如果直接在Shell中调用这个程序,程序会很快结束,不会僵死。为什么会堵塞呢,原因是当调用exec(cmd)后,JVM会启动一...原创 2011-11-08 09:17:18 · 92 阅读 · 0 评论 -
多核平台下的JAVA优化
现在多核CPU是主流。利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于Java程序,可以实现并发垃圾收集。但是Java利用多核技术也带来了一些问题,主要是多线程共享内存引起了。目前内存和CPU之间的带宽是一个主要瓶颈,每个核可以独享一部分高速缓存,可以提高性能。JVM是利用操作系统的"轻量级进程"实现线程,所以线程每操作一次共享内存,都无法在高速缓存中命中,是一次开销较大的系统调用。所以...原创 2011-11-08 09:12:49 · 49 阅读 · 0 评论 -
使用 Eclipse Memory Analyzer 进行堆转储文件分析
http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ma/?ca=drs-原创 2011-11-07 17:09:42 · 70 阅读 · 0 评论 -
线上游戏的gc情况
resin jvm参数配置如下: <jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg> <jvm-arg>-XX:+PrintGCDetails</jvm-arg> <jvm-arg>-Xloggc:gc.log</jvm-arg> ...2012-07-18 15:47:11 · 129 阅读 · 0 评论 -
JVM调优的几种策略(好)
JVM参数调优是一个很头痛的问题,可能和应用有关系,别人说可以的对自己不一定管用。下面是本人一些JVM调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,dell2950服务器。 JVM调优 一:JVM调优之串行垃圾回收 也就是默认配置,完成10万request用时153秒。JVM参数配置如下: $J...原创 2012-07-18 14:59:07 · 117 阅读 · 0 评论 -
Java GC 日志详解
ava GC日志可以通过 +PrintGCDetails开启以ParallelGC为例YoungGC日志解释如下: FullGC:原创 2012-07-18 14:51:31 · 121 阅读 · 0 评论 -
JVM GC日志时间问题
几乎所有的资料上说到打印JVM GC log的时候都会推荐一个参数: -XX:+PrintGCTimeStamps, 可该选项打印的是JVM以启动时间为基准的相对时间,对于troubleshooting来说非常困难。早在07年的时候就有人提出来并且早已fix,用法是使用 PrintGCDateStamps 代替PrintGCTimeStamps,打印出来的就是真实的日期了 示例如下...原创 2012-07-18 14:22:33 · 537 阅读 · 0 评论 -
jstack命令详解
jstack命令该命令打印java线程的堆栈跟踪,可以得知哪些线程被阻塞或正等待,以便于查找如线程死锁的原因用法:jstack [ option ] pid -F:强制产生一个线程dump-m:打印java和native frames-l:打印关于锁的附加信息举例:...原创 2011-10-08 10:42:59 · 110 阅读 · 0 评论 -
减少minor gc晋升到old的对象的方法
1、调大新生代;2、调大survivor,让新生代对象在minor之后再多活点时间;3、调大TenuringThreshold(存货周期); <!--StartFragment --> 如何调整survivor:如果新生代的gc方式为ps Gc,survivor space会被动态调整,有些时候会被调整得很小,所以minor Gc导致经常有对象直接分配到old;...原创 2011-08-11 15:44:21 · 197 阅读 · 0 评论 -
jstat应用
用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。Jstat 是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序...原创 2012-06-27 17:33:22 · 86 阅读 · 0 评论