Linux运维21:服务器内存过高跟踪思路

 系列专题:Linux运维入门教程 


        Linux服务器内存使用量超过阈值,触发报警或者OOM。对于线上问题,要进行初步定为和分析,为后面的研发人员分析和解决问题,提供帮助。本文将将此类问题的排查的方法和思路分享给各位,希望对您有所帮助。

1. 问题描述

        Linux服务器内存使用量超过阈值,触发报警或者OOM。

2. 问题排查

2.1 第一步

        使用free查看内存使用情况 

[root@devvm ~]# free
              total        used        free      shared  buff/cache   available
Mem:        24675796     24587144   88652           0      357012      1612488
Swap:       2096472      108224     1988248 
[root@devvm ~]# 

        其中,可以看出内存总量为24675796KB,已使用22617644KB,只剩余2058152KB。

        然后,接着通过top命令,shift + M按内存排序后,观察系统中使用内存使用多的进程情况。

        在top视图中,可以按b打开或关闭加亮效果,这样更便于观察。在打开加亮的效果之后,可以按x键实现列的加亮效果,同时可以按”shift+>”或者”shift+<”左右改变排序序列。

        注:下图仅显示效果,不作为真是图片

2.2 小结

        通过如上手段可以看出哪些线程使用的内存比较多

3. 更进一步

        通过cat /proc/meminfo观察slab的使用量。

[root@devvm ~]# cat /proc/meminfo 
MemTotal:        7990068 kB
MemFree:         7442468 kB
MemAvailable:    7367136 kB
Buffers:            2076 kB
Cached:           109384 kB
……
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         66352 kB
Mapped:            26872 kB
Shmem:             11960 kB
Slab:              72908 kB
SReclaimable:      23592 kB
SUnreclaim:        49316 kB
……
[root@devvm ~]# 

        如果返现slab比较多,就需要借助slabtop工具查看哪个结构占用的内存比较多,可能发生了内存泄漏.

4. 附录 slabtop

        实时显示内核slab内存缓存信息。

4.1 用法

语法:

slabtop [参数]

参数说明:

-d每n秒更新一次显示的信息,默认是每3秒
-s指定排序标准进行排序
-o显示一次后退出
-V显示版本
-- -help显示帮助信息

字段排序:(在交互模式,直接按键即可排序)

       character   description                header
       a           number of active objects   ACTIVE
       b           objects per slab           OBJ/SLAB
       c           cache size                 CACHE SIZE
       l           number of slabs            SLABS
       v           number of active slabs     N/A
       n           name                       NAME
       o           number of objects          OBJS
       p           pages per slab             N/A
       s           object size                OBJ SIZE
       u           cache utilization          USE

4.2 示例

        默认按照对象数排序

[root@devvm ~]# slabtop 

 Active / Total Objects (% used)    : 708440 / 710606 (99.7%)
 Active / Total Slabs (% used)      : 7387 / 7387 (100.0%)
 Active / Total Caches (% used)     : 72 / 104 (69.2%)
 Active / Total Size (% used)       : 74129.67K / 74773.73K (99.1%)
 Minimum / Average / Maximum Object : 0.01K / 0.10K / 8.00K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                   
137700 137700 100%    0.02K    810	170	 3240K fsnotify_mark_connector
129408 129408 100%    0.03K   1011	128	 4044K kmalloc-32
 92672  92672 100%    0.01K    181	512	  724K kmalloc-8
 72960  72960 100%    0.02K    285	256	 1140K kmalloc-16
 49572  49572 100%    0.12K    729	 68	 5832K kernfs_node_cache
 44608  43535  97%    0.06K    697	 64	 2788K kmalloc-64
 31836  31836 100%    0.19K    758	 42	 6064K dentry
 30498  30498 100%    0.04K    299	102	 1196K selinux_inode_security
 20240  20240 100%    0.58K    368	 55     11776K inode_cache
 14504  14504 100%    0.07K    259	 56	 1036K avc_node
 11560  11560 100%    0.05K    136	 85	  544K shared_policy_node
  9156   9156 100%    0.19K    218	 42	 1744K kmalloc-192
  8832   8582  97%    0.25K    138	 64	 2208K kmalloc-256
  6272   6272 100%    0.50K     98	 64	 3136K kmalloc-512
  6068   5431  89%    0.21K    164	 37	 1312K vm_area_struct
  3723   3723 100%    0.08K     73	 51	  292K anon_vma
  3696   3696 100%    0.09K     88	 42	  352K kmalloc-96
  3648   3546  97%    1.00K    114	 32	 3648K kmalloc-1024
  3456   3456 100%    0.12K     54	 64	  432K kmalloc-12
……

在交互模式险,直接按“c”即是按照cache size大小排序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YoungerChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值