![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内存泄露
文章平均质量分 64
sunshineywz
这个作者很懒,什么都没留下…
展开
-
oom killer理解和日志分析:日志分析
这篇是一例oom killer日志的具体分析,有疑问的可以先看上一篇:oom killer理解和日志分析:知识储备i下面是一台8G内存上的一次oom killer的日志,上面跑的是RocketMQ 3.2.6,java堆配置:-server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=320mJun 4 17:19:10 iZ23tpcto8eZ kernel: AliYunDun invoked oom-killer: gfp_ma原创 2021-05-11 17:09:11 · 769 阅读 · 0 评论 -
问题描述:当前NT98520A平台在跑业务时频繁出现kswapd0线程升高导致CPU占用率100%,设备卡死的现象,设备在比较卡的情况下进行操作容易产生oom,且oom时设备可用内存高于水位线。
问题描述:当前NT98520A平台在跑业务时频繁出现kswapd0线程升高导致CPU占用率100%,设备卡死的现象,设备在比较卡的情况下进行操作容易产生oom,且oom时设备可用内存高于水位线。初步分析:该线程应该是在内存回收时候才会升高的,即在内存低于low回收点时才会开始回收,回收到超过high值之后停止回收。收集了几次信息发现内存剩余还有1314M时该线程已经有20%40%的CPU占用率。当前设备的zoneinfo信息水位线配置分别是4M,low是5M,high是6M。请帮忙分析出现该现象的原因以原创 2021-05-11 17:03:06 · 551 阅读 · 1 评论 -
定位一个oom问题
当系统出现oom问题时,我们一般的定位思路是怎样的?系统OOM常见的原因有:1、用户态内存需求过多,资源不足;2、大页配置不正确;3、水位线值异常;4、slab内存过多;5、rcu异常;OOM问题定位步骤如下:1、查看/proc/meminfo,查看用户态内存和内核态内存分别占用多少内存;通过top命令查看占用内存较多的前10个进程;1、用户态内存使用过多;2、top 10的进程存在非虚拟机进程,通常情况下,使用内存最多的是虚拟机进程。如果是费虚拟机进程出现在了前top10里,那么有可能原创 2021-05-11 16:58:54 · 1505 阅读 · 0 评论 -
DEBUG神器valgrind之memcheck报告分析
memcheck怎么运行valgrind --log-file=valgrind.log --tool=memcheck --leak-check=full --show-reachable=no --workaround-gcc296-bugs=yes ./mcsample arg1 arg2–log-file 表示输出报告文件,可以是相对路径或完全路径–tool=memcheck 做内存检测就是memcheck,要知道valgrind是一个工具集–leak-check=full 完整检测–sh原创 2020-12-07 14:34:20 · 631 阅读 · 0 评论 -
内存泄漏(增长)火焰图
正文当你的应用程序占用的内存不断地提升时,你不得不立即修复它。造成这种情况的原因可能是因为错误配置而导致的内存增长,也可能是因为软件bug引起的内存泄露。无论哪一种,由于垃圾回收机制开始积极响应(消耗CPU),一些应用的性能便会开始下降。一旦某个应用增长得太过庞大,那么其性能会受调页机制(swapping)的影响出现断崖式下降,甚至可能直接被系统kill掉(Linux系统的OOM Killer)。无论是内存泄漏还是内存增长,如果你的应用在扩展,你肯定想先看看其内部发生了什么,说不定其实是个很容易修复的小问原创 2020-06-13 09:29:33 · 1367 阅读 · 1 评论 -
GCC 中的编译器堆栈保护技术
以堆栈溢出为代表的缓冲区溢出已成为最为普遍的安全漏洞。由此引发的安全问题比比皆是。早在 1988 年,美国康奈尔大学的计算机科学系研究生莫里斯 (Morris) 利用 UNIX fingered程序的溢出漏洞,写了一段恶意程序并传播到其他机器上,结果造成6000 台 Internet上的服务器瘫痪,占当时总数的 10%。各种操作系统上出现的溢出漏洞也数不胜数。为了尽可能避免缓冲区溢出漏洞被攻击者利用,现今的编译器设计者已经开始在编译器层面上对堆栈进行保护。现在已经有了好几种编译器堆栈保护的实现,其中最著名的原创 2020-05-17 19:09:08 · 803 阅读 · 0 评论 -
Linux任督二脉之内存管理(一) PPT
五节课的第一节课-硬件原理和分页管理CPU寻址内存,虚拟地址、物理地址MMU以及RWX权限、kernel和user模式权限内存的zone: DMA、Normal和HIGHMEMLinux内存管理Buddy算法连续内存分配器(CMA)练习题尝试去更改一个const变量meltdown实例看/proc/buddyinfo背离特权模式保护的meltdown漏洞为什么分ZONE...原创 2020-05-10 10:47:26 · 251 阅读 · 0 评论 -
Linux任督二脉之内存管理(三) PPT
五节课的第三节课-进程的内存消耗和泄漏*进程的VMA。*进程内存消耗的4个概念:vss、rss、pss和uss*page fault的几种可能性,major和minor*应用内存泄漏的界定方法*应用内存泄漏的检测方法:valgrind和addresssanitizer练习题*看一下进程的/proc/<pid>/maps和smaps文件;*pmap一个进程;*把同一个程序运行2次,运行1次,观察pss;再运行,得到2个进程,观察代码段的pss变化;*valgrind检查内存错误原创 2020-05-10 10:47:06 · 233 阅读 · 0 评论 -
曾文斌: /proc/meminfo之谜完全揭秘
/proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的/proc/meminfo所包含的信息比”free”等命令要丰富得多,然而真正理解它并不容易,比如我们知道”Cached”统计的是文件缓存页,manpage上说是“In-memory cache for files read from the disk (t...原创 2020-05-09 08:23:15 · 1623 阅读 · 0 评论 -
hisi3531 valgrind 交叉编译移植
valgrind 神器不用我多说,linux平台开发利器。一、 安装1. autoconf# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz # tar -zxvf autoconf-2.69.tar.gz # cd autoconf-2.69# ./configure# make; make install2....原创 2020-04-20 08:41:23 · 2940 阅读 · 4 评论