java 怎么监控linux上线程是否存在

java 怎么监控linux上线程是否存在,第1张

CPU资源时,按照以下步骤进行查找:

(一):通过【 top -p 12377 -H】 查看java进程的有哪些线程的运行情况;

和通过【jstack 12377 >stack.log】生成Java线程的dump详细信息;

先用top命令找出占用资源厉害的java进程id,如图:# top

如上图所示,java的进程id为’52554′,接下来用top命令单独对这个进程中的所有线程作监视:

1top -p 52554 -H

# top视图里面里面可以通过快捷键依次b ,x高亮显示top的列找出需要的线程,默认CPU排序,Sh

java 的WatchService 类提供了一种方式可以检查

try

{

WatchService watchService = FileSystems.getDefault()

.newWatchService()

Path path = Paths.get(pathName)

// 注册监听器

path.register(watchService,

StandardWatchEventKinds.ENTRY_CREATE,

StandardWatchEventKinds.ENTRY_DELETE)

while (true)

{

// 阻塞方式,消费文件更改事件

List<WatchEvent<?>>watchEvents = watchService.take()

.pollEvents()

for (WatchEvent<?>watchEvent : watchEvents)

{

System.out.printf("[%s]文件发生了[%s]事件。%n", watchEvent

.context(), watchEvent.kind())

}

}

}

catch (Exception e)

{

}

对于远程监控Linux主机系统CPU,内存使用情况,以前也使用了top等命令,但是最后还是觉得使用vmstat比较好.

运行top命令获得系统CPU使用情况有两个缺点,

第一运行top命令,执行的shell语句相对复杂.

用top命令获得CPU使用情况的shell语句

top -b -n 2 | grep Cpu |sed 1d | awk '{print $5}' | cut -f 1 -d "."

第二:有时候系统峰值时间很短暂,容易造成误判.

注意:运行本例子,你还需要下载第三方ganymed-ssh2-build251beta1.jar,改软件主要用于通过ssh远程登录被监控主机.

ITjob上。看。的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7263421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存