欢迎来到天天文库
浏览记录
ID:18870729
大小:90.00 KB
页数:44页
时间:2018-09-26
《java问题定位技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、java问题定位技术JAVAcoredump分析http://www.7dtest.com/site/html/64/t-4464.htmlThinkinginEnterpriseJava(企业级java编程思想)javaBaseTest>log.txt2>&1输入输出重定向标准输入stdin0标准输出stdout1错误输出stderr2pgrepjavakill-3会在log.txt中输出线程堆栈80-20原则:20%的代码消耗了80%的资源20%的代码执行消耗了80%的时间GC日志-verbose:gc或
2、-Xloggc:filenamejava-Xloggc:gc.logBaseTest>log2.txt2>&1jvmgc策略参数-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFractionJVM远程调试-Xdebug-Xrunjdwp:transport=dt_socket,server=y,address=%DEBUG_PORT%,suspend=nsuspend设为n时JVM会在打开调试端口后正常启动若设为y则JVM启动后会等候调
3、试器连接后才继续启动JDWPJavaDebugWireProtocolTransportInterface-Xdebug-Xrunjdwp:transport=dt_socket,server=y,address=8090,suspend=n检查调试端口是否打开netstat-an
4、grep8090tcp0010.16.40.9:809010.16.40.11:4614ESTABLISHED查看使用8090的进程lsof-i:8090COMMANDPIDUSERFDTYPEDEVICESIZENODENAMEjava3
5、747dugang6uIPv42835518TCPdugang-desktop.local:8090->10.16.40.11:4614(ESTABLISHED)ps-ef
6、grepjavadugang20721105:43?00:00:19gedit/home/dugang/work/java/startdugang374737464206:06pts/200:02:55java-Xloggc:gc.log-Xdebug-Xrunjdwp:transport=dt_socket,server=y,address=80
7、90,suspend=nBaseTestdugang414726995006:13pts/100:00:00grepjava利用/proc虚拟文件系统监控进程结合lsof进行分析listopenfilestop-p3747pmap3747strace第1章java线程堆栈分析cpu内存占用过高分析进程线程java线程本地线程进程分析线程分析HashMap多线程读写死循环top-p查看进程情况topH-p查看线程情况JavaThreadDumpLWPIDlightweightprocess线程thre
8、ad轻量级线程jni调用GC频繁导致CPU过高kill-3打印线程堆栈JProfiler等工具在生产环境下慎用资源等待lockwait/notifyhttp-8082-Processor84"daemonprio=10tid=0x0887c000nid=0x5663inObject.wait()java.lang.Thread.State:WAITING(onobjectmonitor)atjava.lang.Object.wait(Object.java:485)atorg.apache.commons.p
9、ool.impl.GenericObjectPool.borrowObject(UnknownSource)数据库连接池资源太少连接池配置得太少资源占用时间过长把复杂的业务处理代码放在数据库事务里SQL语句不合理没有使用索引资源泄露使用玩没有正常关闭线程没有正常退出导致系统挂死定时打印堆栈跟踪排查长时间运行的线程死循环wait后没有接收到notify通知与外部通讯(远程调用)超时锁等待锁持有死锁"Thread-1021"prio=5tid=0x0164eac0nid=0x41ewaitingformonitorentr
10、y[...]waitingtolock<0xbef17078>(a[B)//等待锁0xbef17078找出占用锁的线程locked<0xbef17078>//占有锁0xbef17078线程死锁挂起分析线程堆栈分析解决不了的问题线程跑飞?数据错误数据库锁表(事务没有正常提交回滚)在堆栈中能够表现出问题的使用线程堆栈进行定位无法在线程
此文档下载收益归作者所有