Java常见问题排查_第1页
Java常见问题排查_第2页
Java常见问题排查_第3页
Java常见问题排查_第4页
Java常见问题排查_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java常见问题排查 毕玄2014.10About Menbluedavy,毕玄,林昊l2007年加入淘宝l2008-2010n负责从0打造淘宝的服务框架,在2011年总的服务请求量超过100亿;l2011n负责引入HBase并落地,目前在阿里具备极大的规模;l2012n负责打造阿里自己的基于LXC的虚拟化平台;l2013-n自动化运维、稳定性、性能、成本以及全局架构。Java常见问题类型n类冲突问题nOOM问题nCPU利用率问题n应用没响应问题n分布式环境下应用交互超时问题nJava进程异常退出问题类冲突问题n现象lNoSuchMethodException等n排查方法l-XX:+Trace

2、ClassLoadingljar tvf *.jarn解决方法lmvn pom里去除不需要的版本providedl在打包阶段就尽可能避免掉版本冲突的问题OOM问题n现象ljava.lang.OutOfMemoryErrornGC overhead limit exceedednJava Heap SpacenUnable to create new native threadnPermGen SpacenDirect buffer memorynMap failednrequest bytes for . Out of swap space?OOM问题(Cont.)nGC overhead l

3、imit exceeded/Java Heap Spacel排查方法n拿到HeapDump文件l-XX:+HeapDumpOnOutOfMemoryErrorljmap dump:file=,format=b pidlgcore pidn分析HeapDump文件lMAT Dominator Treen根据MAT分析的结果来定位到代码lbtraceOOM问题(Cont.)nGC overhead limit exceeded/Java Heap Spacel分析HeapDump文件时可能会碰到n占用的内存并不多l分配了一个巨大的对象grep i allocating large 日志文件(必须是

4、ali jdk)l死循环jstackOOM问题(Cont.)nUnable to create new native threadl排查方法nps eLf | grep java cncat /proc/pid/limitsl如果太小,可以调大点max open processes值nsysctl a | grep kernel.pid_maxn如果真的是线程创建太多了ljstack 有线程名的话通常会比较好排查lbtracenew Thread | new ThreadPoolExecutorOOM问题(Cont.)nPermGen Spacel排查方法nbtracelClassLoader

5、.defineClassOOM问题(Cont.)nDirect buffer memoryl排查方法nbtracelByteBuffer.allocateDirectOOM问题(Cont.)nMap failedl排查方法nbtracelFileChannel.mapn看看是不是加了-XX:+DisableExplicitGC参数OOM问题(Cont.)nrequest bytes for . Out of swap space?l排查方法n地址空间耗尽l建议升级64 bitn物理内存耗光l按经验btraceDeflater.init | Deflater.end | Inflater.ini

6、t | Inflater.end强制执行full gcjmap histo:live pid如果执行几次后内存明显下降,则基本是Direct ByteBuffer造成的lgoogle PerftoolsCPU利用率问题nus高l排查方法nCMS GC/Full GC频繁l查看gc log,或jstat gcutil pid 1000 10n代码中出现非常耗CPU的操作ltop H + jstack,做pid到nid的16进制转化printf 0 x%xn整体代码的消耗ltop H看到每个线程消耗都差不多,而且不断变化lperf top必须是ali版的perf和jdkCPU利用率问题(Cont.

7、)nsy高l排查方法njstackl看看锁状况l看看是不是有主动线程切换等nbtracelAbstractQueuedSynchronizer.ConditionObject.awaitNanosCPU利用率问题(Cont.)niowait高l排查方法n确认硬件状况l例如raid卡的cache策略n借助系统工具lblktrace+debugfsliotoplbtrace应用没响应问题n排查方法l判断原因n资源被耗光(CPU、内存)n死锁n处理线程池耗光ljstack l分布式环境下应用交互超时问题n排查方法l查看服务端对应的日志和响应时间监控信息l查看调用端和服务端的gc logl查看调用端和

8、服务端的CPU利用率l查看有没有反序列化失败的logl查看网络的重传率l利器nEagleEyeJava进程异常退出问题n排查方法l查看生成的hs_err_pidpid.logl确保core dump已打开,cat /proc/pid/limitsldmesg | grep i killl根据core dump文件做相应的分析ngdb java路径 core文件lc调试技巧Java进程异常退出问题(Cont.)n常见的caseslnative stack溢出导致java进程退出的casel编译不了某些代码导致的Java进程退出的casen-XX:CompileCommand=exclude,the/package/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论