诗和远方

查询占用CPU的线程

1.top命令获取占用cpu资源较高的进程pid


2.使用 jstack pid > file.txt 命令查看当前java进程的堆栈状态

jstack命令生成的thread dump信息包含了JVM中所有存活的线程,为了分析指定线程,必须找出对应线程的调用栈。


3.查看该进程下占用cpu资源较高的线程pid2s

top -Hp pid


把得到的占用cpu资源较高的线程pid2s转成16进制的值

echo “obase=16; pid2s” | bc

printf "%x\n" 5359

5359 14ef

5360 14f0

5361 14f1

5362 14f2


JVM的GC线程一直在占用大量CPU, 定位代码得出的结论是:Java程序连MySQL频繁new connection而且没有调用close方法,导致GC线程一直占用CPU。


jstat -gc pid 5000 # 垃圾回收统计

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:

jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]

jstat -printcompilation <pid>:当前VM执行的信息。

jstat -gcpermcapacity<pid>: perm对象的信息及其占用量

新生代:-gcnew

年老代:-gcold


jstack(查看线程)、jmap(查看内存)和jstat(性能分析)

Related
/var/log目录下的Linux日志文件功能2019年06月24日
索引节点inode2019年06月21日
Shell脚本实例2019年06月20日
GCC编译C程序2019年06月18日
Linux内核编译/内核数据结构/同步机制/信号量2019年06月14日
shell中的算术运算2019年06月14日
iptables2019年06月14日
7 个致命的 Linux 命令2019年06月14日
Random
人成功了说什么都是对的2018年01月20日
少年就是少年2017年12月01日
上海人口数值曲线图2018年08月22日
苹果CEO库克2017财年薪酬增长47%2017年12月28日
三十年前和三十年后2017年12月07日
阿里巴巴宣布成立平头哥半导体有限公司2018年09月19日
生理盐水洗鼻2017年12月04日
Docker2019年06月06日

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:1995
  • 页面总数:1
  • 分类总数:17
  • 标签总数:515
  • 评论总数:0
  • 浏览总数:516418
Archives
Copyright © 2017-2019 www.my889.com Some Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号
Sitemap XML