首页 > 其他分享 >一些问题分析过程

一些问题分析过程

时间:2022-12-08 11:24:08浏览次数:51  
标签:分析 99 195788 WAITING 线程 onobjectmonitor 一些 上下文 过程

 

 

1. 排查空余线程、线程上下文切换情况

  先使用 vmstat 测量上下文切换次数。vmstat 命令详解

# vmstat 1
procs   -----------memory----------    ---swap-- -----io----  -system--  ------cpu-----
 r  b   swpd   free    buff   cache     si   so    bi    bo    in   cs   us sy id wa st
 0  0      0 16097480 195788 6907592    0    0     0     4      1    1   0  0 99  0  0
 0  0      0 16097396 195788 6907592    0    0     0     0   1485 3055   1  1 99  0  0
 0  1      0 16097492 195788 6907596    0    0     0    20   1579 3122   0  1 98  1  0
 0  0      0 16097524 195788 6907632    0    0     0     0   1524 3094   0  0 99  0  0
 0  0      0 16097332 195788 6907632    0    0     0     0   1516 3063   0  1 99  0  0

  cs (Content Switch)表示上下文切换的次数。从上面的测试结果来看,上下文每1秒切换3000多次,这表示空闲线程数比较多才会造成上下文切换次数过高的情况。

  接下来我们要解决如何减少上下文切换。

1.1 使用 jstack 命令 dump线程信息。

  先用 jps 命令,获取到Java应用的pid,用 jstack 命令dump线程信息,看看pid为 502411 的进程里的线程都在做什么?

# jstack 502411 > /home/tmp/dump01

  如果当前用户没有权限,可以在命令前加 sudo

1.2 统计所有线程分别处于什么状态,主要看 WAITING(onobjectmonitor)

# grep java.lang.Thread.State dump01 | awk '{print $2$3$4$5}' | sort | uniq -c
     46 RUNNABLE
      1 TIMED_WAITING(onobjectmonitor)
     23 TIMED_WAITING(parking)
      7 TIMED_WAITING(sleeping)
    212 WAITING(onobjectmonitor)
     43 WAITING(parking)

1.3 打开 dump 文件查看出 WAITING(onobjectmonitor) 的线程在做什么?

  这些线程的大概率是 Tomcat、Jboss 等框架启动时自创建,这样可以直接调试启动参数。

  如果是程序代码中出现空闲线程,需要调整连接池之类的参数了。

 

标签:分析,99,195788,WAITING,线程,onobjectmonitor,一些,上下文,过程
From: https://www.cnblogs.com/huanshilang/p/16965587.html

相关文章

  • RNA-seq 详细教程: `DESeq2` 差异表达分析(7)
    学习目标了解如何设计公式了解如何使用DESeq2执行差异表达分析1.DE分析差异表达分析工作流程的最后一步是将原始计数拟合到NB模型并对差异表达基因进行统计检......
  • 存储过程和函数(存储过程)
      用户变量也是全局变量。   其中selectlast_insert_id();取的id是在当前会话(窗口)中插入的最后一条记录的id。selectmax(id)fromstudent;取最大i......
  • 「Note」《一些特殊的数论函数求和问题》学习笔记
    其实可以分成三个独立部分的,但是懒了所以全放一起。Min_25筛Meissel-Lehmer算法拟合平面曲线参考一些特殊的数论函数求和问题朱震霆国家集训队论文2018《一些特......
  • 介绍一个不错的页面分析工具,很强悍
    之前用过httpwatch等,这次试用了一个国产的不错的页面分析工具:睿思页面分析专家,功能很齐全,尤其适合门户网站和中小型网站用,提升速度,还有给编辑......
  • 宕机分析案例
    朴英敏:用crash工具分析Linux内核死锁的一次实战通过这个案例,学习ARM64环境下的参数推导,以及死锁的分析方法,其中值得学习的是在当读写锁被读者持有时,由于owner不会记录......
  • NetBeans的一些快捷键
    Alt+Insertgetter覆盖toString方法Shift+F6 运行当前文件F6 运行当前项目Tab 完成代码片段ctrl+\ 代码补全Alt+Shift+F格式化代码(这是为了代码更美观的快捷......
  • CVE-2015-4852 Weblogic T3 反序列化分析
    0x01前言看到很多师傅的面经里面都有提到Weblogic这一个漏洞,最近正好有一些闲暇时间,可以看一看。因为环境上总是有一些小问题,所以会在本地和云服务器切换着调试。0x0......
  • 游戏玩法分析 I
    SQL架构活动表 Activity:+--------------+---------+|ColumnName|Type|+--------------+---------+|player_id|int||device_id|int......
  • 采埃孚制动控制系统-征程®系列芯片-动力电池分析
    采埃孚制动控制系统-征程®系列芯片-动力电池分析参考文献链接https://mp.weixin.qq.com/s/wmeuzdt8R6eEQTNm6DbCFQhttps://mp.weixin.qq.com/s/xW0HaesjtuX6mr8KqpgtDA......
  • easylogging++的那些事(四)源码分析(十)扩展日志回滚
    目录日志回滚接口扩展后的日志回滚接口增加创建新文件的LoggingFlag(CreateNewLogFile)改动后的实现在上一篇我们介绍了easylogging++的异步日志的实现。在结尾的时候......