-
判断该次上线或发版的内容,排查到具体上线了那些接口或修改了那些接口
-
单起一个服务,使用ps -aux |grep pid 查看该进程占用的内存大小
work@xxx:~$ ps -aux |grep 7197 Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ work 7197 2.0 0.9 327900 76296 pts/3 S+ 17:56 0:00 project_name work 7460 0.0 0.0 103324 908 pts/4 S+ 17:56 0:00 grep 7197
展示的信息:
7197 进程ID
2.0 cpu 占用百分比
0.9 内存占用百分比
327900 虚拟内存大小 kb
76296 真实占用内存大小 kb
work@ktv-web2:~$ cat /proc/7197/status Name: python State: S (sleeping) Tgid: 7197 Pid: 7197 PPid: 6709 TracerPid: 0 Uid: 504 504 504 504 Gid: 504 504 504 504 Utrace: 0 FDSize: 256 Groups: 504 VmPeak: 327904 kB VmSize: 327900 kB VmLck: 0 kB VmHWM: 76296 kB VmRSS: 76296 kB Vmdata: 69172 kB VmStk: 124 kB VmExe: 2260 kB VmLib: 10760 kB VmPTE: 468 kB VmSwap: 0 kB Threads: 1 SigQ: 0/62295 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000001001000 SigCgt: 0000000180000002 CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: ffffffffffffffff Cpus_allowed: f Cpus_allowed_list: 0-3 Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 18 nonvoluntary_ctxt_switches: 8
VmRSS为进程所占用的内存
-
一个一个接口的排查,或者觉得可能是那个程序导致的内存泄漏,先去排查该接口,
请求该接口,看一下内存占用是否增多,请求之后内存是否减少,多次请求重复实验
-
排查到接口之后再找是那些代码导致的内存增加,把可能会导致内存增加的代码注释掉
看是否还增加
-
再排查是对象没有被释放掉,还是循环引用,还是第三方库的原因等等
使用tracemalloc 查看当前程序占用内存最大的代码行号
from aiohttp import web import tracemalloc async def get(request): tracemalloc.start() snapshot1 = tracemalloc.take_snapshot() # 代码块 snapshot2 = tracemalloc.take_snapshot() top_stats = snapshot2.compare_to(snapshot1, 'lineno') print(top_stats) return web.Response(text="ok")
,)> size=116500672 (+116500672) count=300004 (+300004)>, ,)> size=11400000 (+11400000) count=200000 (+200000)>, ,)> size=8000000 (+8000000) count=100000 (+100000)>, ,)> size=5500000 (+5500000) count=100000 (+100000)>, ,)> size=5300608 (+5300608) count=100001 (+100001)>,
直接定位到哪个文件的哪行代码占用内存比较多
再去排查问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)