调优常用命令

正如Thread Dump文件记录了当时JVM中线程运行的情况一样,Heap Dump记录了JVM中堆内存运行的情况。

可以通过以下几种方式生成Heap Dump文件:

1使用 jmap 命令生成(其中的pid是JVM进程的id,heap-dump.bin是生成的文件名称,在执行命令的目录下面。推荐此种方法)

jmap -dump:live,format=b,file=heap-dump.bin <pid>

 

2 ,jconsole生成

 获取thread dump文件的方式

jstack -l  pid

 

各个命令的详解以及用法

https://my.oschina.net/feichexia/blog/196575

 load值超过1说明cpu超负载 (一条公路开始堵车)造成cpu load过高的原因.从编程语言层次上full gc次数的增大或死循环都有可能造成cpu load 增高

cpu负载率过高问题排查(查询到具体线程号[tid]占用cpu资源过大的过程)jstack pid |grep tid

jstack -l pid (能查出来所有进程号下得线程id即tid)

https://blog.csdn.net/u010862794/article/details/78020231?locationNum=4&fps=1

 

free命令 

线程异常的状态分析 

https://www.javatang.com/archives/2017/10/26/08572060.html

https://segmentfault.com/a/1190000010973341

https://blog.csdn.net/bluetjs/article/details/78040571

 

linux下用top命令查看cpu利用率超过100%

https://blog.csdn.net/yrryyff/article/details/83588228

 

load值为什么>1

https://www.jianshu.com/p/d07b51fe9855

我们举个例子:高速公路收费站10个车道,那当有1-9辆车在不同的通道通过时,认为收费站的load<1;当正好10辆车在不同的通道时,load=1;当超过10辆车(假设每个通道是均匀有车)时,load>1.假设有100辆车,每个通道10辆,那就说明能有10辆车能过去,另外90辆车则需要等待。此时收费站的load为100/10=10. 这个10的负载表示系统当前满负荷运转,且还有相当于90%的满负载的请求在等待。

但是经常我们也看到load average 有高达6,那真的是有问题嘛?不一定,因为它是基于操作系统的内核的数量决定的,一般可以简单粗暴的理解为内核load之和。 比如现在一般都是8个内核,那么load average的值就是8、
一般业界能够被接受的值是, load average <= CPU核数 *0.7。 但现在硬件越来越便宜,核数庞大的机器也越来越大,如遇到机器的CPU核数很大,那么剩余的30%部分也越大,这个时候可以适当的调整下,只要不要到整个核数都用满。



作者:果酱呐
链接:https://www.jianshu.com/p/d07b51fe9855
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值