JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole,还有jps,jmap,jstat,jstack,jhat等小工具。
站在用户的角度思考问题,与客户深入沟通,找到宁洱网站设计与宁洱网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、网站制作、企业官网、英文网站、手机端网站、网站推广、域名申请、网页空间、企业邮箱。业务覆盖宁洱地区。1. jps(Java Virtual Machine Process Status Tool)
jps -m -l 列出JVM中运行的进程状态信息(这里可以获取某个进程的pid, 供后续命令使用)
2. jstat
jstat -gcutil pid 10s 3 对堆内存的使用情况、gc信息等进行实时的命令行统计
3. jstack
查看某个Java进程内的线程堆栈信息。
jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。
使用方法参见:6. 热点CPU
4. jmap
生成堆内存快照
jmap -heap pid 查看进程堆内存信息,了解即可
jmap -dump:format=b,file=xxx.hprof pid 把进程内存使用情况dump到文件中。Dump文件是进程的内存镜像
jmap -dump:live,format=b,file=xxx.hprof pid 统计存活的对象信息
dump出来的文件可以用MAT、VisualVM等工具查看,也可以用jhat查看
5. jhat
查看dump出来的文件
jhat -port 9998 xxx.hprof
然后就可以在浏览器中输入主机地址:9998查看了,比如:http://localhost:9998
不推荐,因为有的文件很大,打开会很慢,看起来也费劲,推进用MAT分析
6. 热点cpu
cpu占用率持续的比较高
定位步骤:
jps -m -l 列出正在运行的进程----这里是否用top命令更好一些?top才能看出谁占用cpu最高
top -H -p pid 找出该进程内最耗费cpu的线程
printf "%x\n" tid 线程id转化为16进制
jstack pid | grep 转化为16进制的tid -A 50
备注1:展示的信息中,重点关注自己编写的代码,截图给开发
备注2:有可能一次jstack不能捕捉到需要的信息,那么需要多次执行,因为抓的是那一瞬间的状态
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款