如何监控线程运行情况

如何监控线程运行情况,第1张

1。 使用top命令,具体用法是 top -H

加上这个选项,top的每一行就不是显示一个进程,而是一个线程

2。 使用ps命令,具体用法是 ps -xH

这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。

3。 使用ps命令,具体用法是 ps -mq PID

这样可以看到指定的进程产生的线程数目。

更进一步,其实一些系统监控工具,在本质上也是读取的系统产生的文件罢了。比如说进程这个事情,

看看这个目录吧,/proc/5000/ 这里面有你所有想要的。其实stat代表着当前的一些信息。

使用ps命令来查看进程的时候,进程状态分别对应的含义如下:

D 不可中断睡眠 (通常是在IO *** 作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生

R 正在运行或可运行(在运行队列排队中)

S 可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)

T 已停止的 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行

W 正在换页(2.6.内核之前有效)

X 死进程 (未开启)

Z 僵尸进程 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放BSD风格的

<高优先级(not nice to other users)

N 低优先级(nice to other users)

L 页面锁定在内存(实时和定制的IO)

s 一个信息头

l 多线程(使用 CLONE_THREAD,像NPTL的pthreads的那样)

+ 在前台进程组

可以使用以下方式监控 Tomcat 内存和线程数:

监控 Tomcat 进程的内存使用情况,可以使用系统工具如 top(Linux/Unix)或 Task Manager(Windows),或者使用第三方监控工具如 jstat, jmap, VisualVM 等。

监控 Tomcat 线程数,可以使用 jstack 命令获取线程信息,然后统计线程数。例如,在 Linux/Unix 系统中,可以使用以下命令获取 Tomcat 进程的线程信息:

jstack -l <pid>| grep "java.lang.Thread.State" | wc -l

其中 <pid>是 Tomcat 进程的进程号。该命令会输出当前 Tomcat 进程中的线程数。

另外,也可以使用 Tomcat 内置的管理工具来监控内存和线程数。例如,在 Tomcat 8 或以上版本中,可以使用 Tomcat 自带的 Manager App 来监控 Tomcat 内存和线程数。在 Manager App 的首页上,可以看到 Tomcat 当前的内存使用情况和活动线程数。如果需要更详细的信息,可以点击页面上的 Server Status 或 Thread Pool 链接,查看更详细的信息。

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


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

原文地址: https://outofmemory.cn/yw/7955849.html

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

发表评论

登录后才能评论

评论列表(0条)

保存