博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个load飙高的过程分析,非常有价值(转)
阅读量:5938 次
发布时间:2019-06-19

本文共 649 字,大约阅读时间需要 2 分钟。

 

关于us高和sy高的问题分析:

当us值过高时,表示运行的应用消耗大量的CPU。java应用造成us高的原因主要是线程一直处于可运行(Runnable)状态,通常这些线程在执行无阻塞、循环、正则或纯粹的计算等任务造成的;另外一个可能也会造成us高的原因是频繁GC。

当sy值高时,表示linux花费了更多的时间在进行java线程切换。java应用造成这种现象的主要原因是启动的线程比较多,且这些线程多数处于不断的阻塞(例如锁等待,IO等待状态)和执行状态的变化过程中,这就导致了操作系统要不断地切换执行的线程,产生大量的线程上下文切换。

 

 

对于jstack做的ThreadDump的栈,可以反映如下信息。

如果某个相同的call stack经常出现, 我们有80%的以上的理由确定这个代码存在性能问题(读网络的部分除外);

如果相同的call stack出现在同一个线程上(tid)上, 我们很很大理由相信, 这段代码可能存在较多的循环或者死循环;

如果某call stack经常出现, 并且里面带有lock,请检查一下这个lock的产生的原因, 可能是全局lock造成了性能问题;

在一个不大压力的群集里(w<2), 我们是很少拿到带有业务代码的stack的, 并且一般在一个完整stack中, 最多只有1-2业务代码的stack,

如果经常出现, 一定要检查代码, 是否出现性能问题。

如果你怀疑有dead lock问题, 那么请把所有的lock id找出来,看看是不是出现重复的lock id。

 

 

转载地址:http://xbvtx.baihongyu.com/

你可能感兴趣的文章
[LeetCode] Factorial Trailing Zeroes 阶乘末尾0
查看>>
消除字号标签<h1><h2><h3>的自动换行
查看>>
关于ListView的一些不常用到的属性
查看>>
201521123040《Java程序设计》第13周学习总结
查看>>
Mybatis的分页插件com.github.pagehelper
查看>>
Rand工具类
查看>>
iOS边练边学--cocoaPods管理第三方框架--命令行方式实现
查看>>
线程学习笔记(一)
查看>>
黄聪:bootstrap的模态框modal插件在苹果iOS Safari下光标偏离问题解决方案
查看>>
黄聪:在Windows下搭建***服务器
查看>>
git常用命令
查看>>
[Android学习笔记]EditText的使用
查看>>
《活出生命的意义》读后感
查看>>
第四次作业
查看>>
第二次软件综合实验专题作业——结对编程 1759103 李思佳 、 1759107 陶彦婷
查看>>
TCP协议三次握手过程分析
查看>>
std::lexicographical_compare
查看>>
Java设计模式:代理模式(一)
查看>>
直线栅格化(基于 Bresenham 算法)
查看>>
python IDLE 如何实现清屏
查看>>