社区
高性能WEB开发
帖子详情
Linux环境下如何确定java进程下那个线程导致IO持续高的呢
depositpei
2017-11-01 10:09:44
1、当前我们有一套业务系统部署在Linux环境上后io持续90%,有近一天了,用ipstat命令可以看到那个java进程占用io高,现在想进一步知道是那个java线程导致的,采用什么方法呢,我目前是用jstack打印堆栈,打印出来的堆栈也看不出来是那个业务在读写文件
...全文
746
4
打赏
收藏
Linux环境下如何确定java进程下那个线程导致IO持续高的呢
1、当前我们有一套业务系统部署在Linux环境上后io持续90%,有近一天了,用ipstat命令可以看到那个java进程占用io高,现在想进一步知道是那个java线程导致的,采用什么方法呢,我目前是用jstack打印堆栈,打印出来的堆栈也看不出来是那个业务在读写文件
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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繁忙程度
老廉颇尚能饭否
2017-11-07
打赏
举报
回复
结合GC日志分析下吧
pilnyun335857183
2017-11-03
打赏
举报
回复
这个用linux自带的命令就可以了pidstat -dt -p [进程号] [统计时间间隔] [统计次数] -t参数就是指定显示进程下所有线程的信息 -d用于显示硬盘io信息 其他参数可以自己百度下
《
Linux
系统编程、网络编程》专题
第1章:文件
io
第2章:文件属性 第3章:标准
IO
(C标准
io
库函数) 第4章:系统信息 第5章:
进程
环境
(程序运行
环境
) 第6章:
进程
控制(程序是如何基于OS运行起来的) 第7章:信号 第8章:本机
进程
间通信(本机IPC) 第9章:C
线程
第10章:
高
级
IO
第11章:TCP/IP网络编程
java
b
io
&n
io
学习
传统
io
(B
IO
) 单
线程
环境
下 单
线程
环境
下阻塞,要么读,要么写 多
线程
环境
下(伪异步
IO
) 多
线程
环境
下,对于局部(单个
线程
)而言是阻塞的;对于全局(整个多
线程
环境
)而言是非阻塞的 优点 阻塞
io
对于大文件的读写效率较
高
,因为建立读取连接后,就可以
持续
进行读写,直到操作完成。 缺点 操作系统对于应用可创建的
线程
数有限制 频繁的创建和销毁
线程
,
导致
开销大,可使用
线程
池来解决该问题(使用
线程
池时不推荐使用Executors进行创建,因为Executors创建的
线程
可能不符合业务场景的需求,从而
导致
资源
Linux
/win
环境
下 Cpu占用率
高
模拟及跟踪检查
模拟占用cpu代码windows
环境
下的处理找到占用cpu相对
高
的
进程
查找
进程
下占用资源
高
的
线程
将
进程
下的堆栈信息dump出来查找对应的
线程
信息,跟踪查看处理
linux
环境
下的处理找到占用cpu相对
高
的
进程
查找
进程
下占用资源
高
的
线程
将
进程
下的堆栈信息dump出来查找对应的
线程
信息,跟踪查看处理 模拟占用cpu代码 public class TestCpuHold { public static void main(String[] args) { while (true){ .
jstack分析CPU
高
的问题
一、jstack 命令参数 二、jstack解决问题 1、死循环
导致
cpu飙
高
死循环的例子:https://blog.csdn.net/goldenfish1919/article/details/8755378 步骤:查找
进程
-》查找
线程
-》分析threadDump日志-》找出问题代码 a、查看cpu
高
的
java
进程
top //
linux
下的命令 b、生成
进程
下所有
线程
的栈日志 jstack 1721 > 1721.txt c、查看
进程
下哪些
线程
占用了
高
的cpu
Socket编程系列之6:Libuv
高
性能异步
IO
及
高
效网络编程
Socket编程系列初步计划:Socket编程系列之1:
Linux
-API网络编程入门实战Socket编程系列之2:Windows-API网络编程入门实战Socket编程系列之3:Libevent网络编程入门实战Socket编程系列之4:Libcurl网络编程入门实战Socket编程系列之5:Boost-AS
IO
网络编程入门实战Socket编程系列之6:Libuv网络编程入门实战----------------------------------------------------Socket编程系列之6:Libuv
高
性能异步
IO
及
高
效网络编程Libuv是一个
高
效的异步
IO
开发库,
Linux
下采取libev,Windows下独立编程实现
IO
CP
高
效网络编程。我将带领大家进行Libuv小白入门知识的讲解,并亲手配置
环境
,跑起来一个HelloWorld案例。然后进行各个方面的项目实战,并深入分析原理,包括:Libuv
进程
开发实战、网络开发实战、
线程
开发实战等。
高性能WEB开发
25,988
社区成员
4,373
社区内容
发帖
与我相关
我的任务
高性能WEB开发
高性能WEB开发
复制链接
扫一扫
分享
社区描述
高性能WEB开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章