Linux查看内存问题的方法

top命令可以实时动态地查看系统的整体运行情况

假装有图。自己虚拟机上打一下。

对每一项进行解释:

1.16:08:49 当前时间

2.up 10 min 当前系统已经运行10min

3.1 user 当前1个用户登录

4.load average: 0.37, 0.50, 0.29 平均负载的含义可以看这篇博客 load average的含义,总之,越高的话负载越重

第二行是对进程的描述

5.281 total 总共有281个进程

6.1 running 正在运行1个进程

7.280 sleeping 280个进程正在睡眠

8.0 stopped 停止的进程数0个

9.0 zombie 冻结的进程个数0

第三行是对CPU使用情况的描述

  1. 6.7 us 用户空间占比 6.7%

  2. 2.9 sy 内核空间占比2.9%

12.0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比0

  1. 88.2 id 空闲CPU百分比

14.2.2 wa等待输入输出的CPU时间百分比

第四行是对内存使用的描述

分别是:

物理内存总量
空闲内存总量
使用内存总量
用作内核缓存的内存亮
第五行是对交换区使用的描述

通过top命令,可以了解到哪一个线程可能是有问题的。找到有问题的线程后,通过jstack命令,将其堆栈信息打印出来。

sudo jstack -F PID

jmap 的使用

sudo -u tomcat jmap -dump:live,format=b,file=pid_3744.hprof 3744 输出存活的对象到二进制文件中 dump可以分析对象的大小情况

-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

-heap 这个只能看内存情况

sudo sz pid_3744.hprof 这个可以快速发送到本地

java -Xmx800m -jar C:\Users\qiwen.wei\Desktop\ha456.jar 启动工具

然后使用工具分析就可以了 ,我使用的分析工具是 Mat

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值