LINUX服务器,内存溢出常用命令

1. 查看各挂载点的容量及信息

df -h
[root@dm8-0001 appdata]# df -h
文件系统                                     容量  已用  可用 已用% 挂载点
devtmpfs                                      16G     0   16G    0% /dev
tmpfs                                         16G   64K   16G    1% /dev/shm
tmpfs                                         16G  1.6G   14G   10% /run
tmpfs                                         16G     0   16G    0% /sys/fs/cgroup
/dev/mapper/klas_host--10--224--53--70-root   35G   18G   18G   51% /
tmpfs                                         16G  896K   16G    1% /tmp
/dev/vdb1                                    500G   57G  444G   12% /appdata
/dev/vda2                                   1014M  218M  797M   22% /boot
/dev/vda1                                    200M  5.8M  195M    3% /boot/efi
tmpfs                                        3.1G     0  3.1G    0% /run/user/993
tmpfs                                        3.1G     0  3.1G    0% /run/user/0
/dev/loop0                                   4.1G  4.1G     0  100% /yum

2. 查看目前内存使用情况

free -g
[root@dm8-0001 appdata]# free -g
              total        used        free      shared  buff/cache   available
Mem:             30          15           2           0          12           9
Swap:             3           1           2

3. 抓取堆栈信息

我这里中间件使用的是金蝶
pid直接用ps -ef | grep apusic命令去查就行

 jmap -dump:live,format=b,file=/xxx/xxx/heap.hprof pid

4. 系统宕机时linux环境导出堆栈日志和内存详细占用日志
方法1:如系统直接宕机可采用自动打dump方式:
一般在启动文件startup.bat或startup.sh中设置
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/dump
其中/opt/dump为系统真实路径可自行修改
系统会自动记录OOM时候的内存堆栈,并生成dump文件供开发排查分析。

方法2:如系统处于响应慢,所有操作十分卡顿状态,并未直接宕机,可采用手动打dump方式:
此过程不可关闭tomcat
步骤1:查看中间件进程PID

	ps –ef|grep tomcat

步骤2:通过jstack命令输出堆栈日志到指定位置

	jstack $pid > /opt/dump1350/jstack.txt

步骤3:通过jmap命令输出内存详细占用日志到指定位置

	jmap -dump:format=b,file=/opt/dump1350/dump.hprof  $pid

5. 根据进程号查询最耗费CPU的线程

TIME列就是各个Java线程耗费的CPU时间

top -Hp pid

在这里插入图片描述
找到最耗费时间的线程,通过下列命令获取到16进制值

printf "%x\n" $pid

在这里插入图片描述
jstack上场,输出进程21711的堆栈信息,然后根据线程ID的十六进制值grep

jstack 1980747 | grep 1e581a

就可以看到它消耗在哪个类

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值