内存泄漏,内存黑洞问题定位

本文介绍了如何定位Linux系统中的内存泄漏和内存黑洞问题。通过`free`、`/tmp`目录、`ps`命令、`/proc/meminfo`及分析Slab、VmallocUsed等方法进行排查。重点关注socket收发队列积压、pf_packet socket及vmware虚拟机balloon技术可能导致的内存占用过高情况。
摘要由CSDN通过智能技术生成

内存泄漏,内存黑洞问题定位

1. free查看内存概况

[root@VM_0_17_centos ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1883844      376664       76136         192     1431044     1311252
Swap:       1048572       30540     1018032

通过对free查看,我们对内存的整体使用有个初步了解,并快速是否存在内存泄漏可能。

1.1 used占用正常,free很低,但是buff/cache和available挺高

这种情况不是内存泄漏,而是系统将可用内存cache起来了。在需要的时候可以释放出来使用。

如需手动释放,可执行 echo x > /proc/sys/vm/drop_caches 将缓存释放出来。(x=1,2,3)
**是否可以控制:**如命令有效果,观察内存不再升高,为控制住。表面不是内存泄露,只是cache较大。

1.2 used占用较高

这种情况存在内存泄漏可能,需要继续向下分析。

2. /tmp目录查看

/tmp目录是占用内存空间的,有时候日志或者其他临时文件过大,导致内存占用过多。

[root@VM_0_17_centos ~]# du -sh /tmp/*
0       /tmp/systemd-private-0bd2eb2d32be4029bb93736c12f9cfc6-httpd.service-93VBb6
0       /tmp/systemd-private-0bd2eb2d32be4029bb93736c12f9cfc6-ntpd.service-s017JD
0       /tmp/systemd-private-5245a0f476c64b80895d3fe3e5c5e9e6-httpd.service-Hp8PSy
0       /tmp/systemd-private-5245a0f476c64b80895d3fe3e5c5e9e6-ntpd.service-yQr1bn
0       /tmp/UNIX.domain

**是否可以控制:**需要确认是否可删除。

3. ps 查看进程内存占用

[root@VM_0_17_centos ~]# ps aux --sort -rss | head -n 10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     11625  0.0  0.0  97292  1732 ?        Sl   14:48   0:00 /usr/local/qcloud/stargate/sgagent -d
root     11636  0.0  0.1 102348  2220 ?        Ssl  14:48   0:00 /usr/local/qcloud/YunJing/YDLive/YDLive
root     11640  0.0  0.4 155208  7572 ?        S    14:48   0:00 barad_agent
root     11645  0.0  0.4 158112  9192 ?        S    14:48   0:04 barad_agent
root     11646  0.3  0.5 609092 11260 ?        Sl   14:48   0:19 barad_agent

ps命令可以帮助我们定位分析应用进程内存泄漏。
观察RSS列,如果有进程RSS占用偏高,则存在内存泄漏可能。
需分析该程序源码是否存在泄漏可能。

4. /proc/meminfo查看内存信息

[root@VM_0_17_centos ~]# cat /proc/meminfo 
MemTotal:        1883844 kB
MemFree:          970208 kB
MemAvailab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值