Linux环境下如何确定java进程下那个线程导致IO持续高的呢

depositpei 2017-11-01 10:09:44
1、当前我们有一套业务系统部署在Linux环境上后io持续90%,有近一天了,用ipstat命令可以看到那个java进程占用io高,现在想进一步知道是那个java线程导致的,采用什么方法呢,我目前是用jstack打印堆栈,打印出来的堆栈也看不出来是那个业务在读写文件
...全文
746 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
X元素 2017-11-10
  • 打赏
  • 举报
回复
1、拿到pid, 2、ps -mp pid -o THREAD,tid,time 找到占用CPU最高的tid, 3、把tid转成16进制数字, 4、配合jstack就能定位到哪出了问题了。
小竹z 2017-11-10
  • 打赏
  • 举报
回复
安装htop工具,使用htop可以看到每个线程的cpu繁忙程度
  • 打赏
  • 举报
回复
结合GC日志分析下吧
pilnyun335857183 2017-11-03
  • 打赏
  • 举报
回复
这个用linux自带的命令就可以了pidstat -dt -p [进程号] [统计时间间隔] [统计次数] -t参数就是指定显示进程下所有线程的信息 -d用于显示硬盘io信息 其他参数可以自己百度下

25,988

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧