linux下定位内存泄漏 /proc/pid/status 解释

2023-11-11

内存泄漏一直是程序定位的盲点,很多时候感觉用着用着内存会越来越少,导致程序崩溃,而一般top等linux命令又不够详细,通过cat /proc/pid/status 命令,可详细查看进程的内存占用情况,其中pid是进程id.

进程号去查状态 cat /proc/(PID)/status

Name: mysqld --进程名字
State: S (sleeping) --进程状态
Tgid: 23778 --进程组号
Pid: 23778 --进程号
PPid: 21783 --父进程号
TracerPid: 0 --跟踪进程号,0表示没有跟踪
Uid: 803 803 803 803 --用户id
Gid: 803 803 803 803 --组id
Utrace: 0
FDSize: 8192 --使用文件描述符的上限
Groups: 803
VmPeak: 11775740 kB --内存峰值
VmSize: 11775740 kB --内存使用
VmLck: 0 kB --锁住的内存
VmHWM: 1522852 kB --物理内存峰值
VmRSS: 1522852 kB --物理内存实际使用
VmData: 11722700 kB --数据段大小
VmStk: 92 kB --堆栈段大小
VmExe: 23168 kB --代码段大小
VmLib: 3528 kB --lib库大小
VmPTE: 3492 kB --使用页表的大小
VmSwap: 0 kB --使用swap的大小
Threads: 43 --线程的数量
SigQ: 542/2067000
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000084007
SigIgn: 0000000000003006
SigCgt: 00000001800006e8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ffff,ffffffff --cpu使用掩码
Cpus_allowed_list: 0-47 --cpu列表
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000003
Mems_allowed_list: 0-1 --内存列表
voluntary_ctxt_switches: 1314 --主动切换的次数
nonvoluntary_ctxt_switches: 109 --被动切换的次数

其中可重点关注以下参数
FDSize: --使用文件描述符的上限
VmPeak: 表示进程所占用最大虚拟内存大小
VmSize: 表示进程当前虚拟内存大小
VmLck: 表示被锁定的内存大小
VmHWM: 表示进程所占用物理内存的峰值
VmRSS: 表示进程当前占用物理内存的大小(与procrank中的RSS)
VmData: 表示进程数据段的大小
VmStk: 表示进程堆栈段的大小
VmExe: 表示进程代码的大小
VmLib: 表示进程所使用共享库的大小

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux下定位内存泄漏 /proc/pid/status 解释 的相关文章

  • 如何在perl中使用O_ASYNC和fcntl?

    我想使用 O ASYNC 选项 当管道可以读取时 SIGIO 的处理程序将运行 但以下代码不起作用 任何人都可以帮助我吗 bin env perl use Fcntl SIG IO sub print catch SIGIO n my fl
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • 如何在特定的Java版本上运行应用程序?

    如何运行具有特定 Java 版本的应用程序 我安装了三个 Java 版本 myuser mysystem sudo update alternatives config java There are 3 choices for the al
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 在用户程序中使用 或在驱动程序模块代码中使用 ...这有关系吗?

    我正在开发一个设备驱动程序模块和关联的用户库来处理ioctl 来电 该库获取相关信息并将其放入一个结构中 该结构被传递到驱动程序模块中并在那里解压 然后进行处理 我省略了很多步骤 但这就是总体思路 一些数据通过结构体传递ioctl is u
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 如何回忆上一个 bash 命令的参数?

    Bash 有没有办法回忆上一个命令的参数 我通常这样做vi file c其次是gcc file c Bash 有没有办法回忆上一个命令的参数 您可以使用 or 调用上一个命令的最后一个参数 Also Alt can be used to r
  • 如何从程序内部获取指向程序的特定可执行文件部分的指针? (也许是诽谤)

    我在 Linux 环境中 需要编写一个程序来检索放置在其可执行文件的某个部分中的一些数据 那么 如何从程序内部获取指向程序某个部分 通过其名称 的指针呢 我知道可以使用elf getdata 将节的索引作为参数传递给 get 和Elf Da
  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • Unix 中的访问时间是多少

    我想知道访问时间是多少 我在网上搜索但得到了相同的定义 读 被改变 我知道与touch我们可以改变它 谁能用一个例子来解释一下它是如何改变的 有没有办法在unix中获取创建日期 时间 stat结构 The stat 2 结构跟踪所有文件日期
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • 点击界面没有出现

    我决定添加一个点击界面并在我的代码中使用它 但我能够得到它的状态 sudo ip f link tuntap add tap10 mode tap sudo ip link set tap10 up 之后当我执行 ip link 时 tap
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • 在 Windows / Linux 中创建 Mac 包

    我自己努力制作一个 r 包 我按照 stackoverflow 中上一个问题的说明进行操作如何为外行开发软件包 http cran r project org bin windows Rtools 以下是我根据上一个问题采取的步骤 在新的
  • X 按键/释放事件捕获,与焦点窗口无关

    我想记录所有传入的按键事件 无论哪个窗口处于焦点状态或指针位于何处 我编写了一个示例代码 它应该捕获当前焦点窗口的按键事件 include
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似

随机推荐

  • 【翻译】为什么你现在比以往更需要混沌工程?

    大约一年前 像餐馆和杂货店这样的实体店正争先恐后地设置送货和路边取货 他们中的很多人都在生产中使用混乱工程 在推出新功能和服务之前迅速寻找失败的原因 教育平台也是如此 在短短一周的时间里 从 好的 变成了 绝对必要 企业混沌工程平台 Gre
  • Android UI设计 屏幕底部的菜单栏 动画切换Activity

    最终效果如下图 点击菜单会切换Activity 有动画效果 从早上起床就研究这个东西 因为之前一直都直接用系统提供的几个控件 从来没搞过图片背景 嵌套布局什么的 今天是第一次 没什么经验 花了一个上午才搞定 简单介绍一下思路 使用Linea
  • std::enable_shared_from_this的原理及意义

    原文 https www cnblogs com lehoho p 9372195 html 和 https www jianshu com p 4444923d79bd enable shared from this是一个模板类 定义于头
  • 【实战练习】汽油辛烷值优化建模(二)(问题一的详细讲解)

    1 问题回顾 问题1为数据处理 需参考近4年的工业数据 见附件一 325个数据样本数据 xlsx 的预处理结果 依 样本确定方法 附件二 对285号和313号数据样本进行预处理 原始数据见附件三 285号和313号样本原始数据 xlsx 并
  • Python3学习笔记(一) 基本数据类型(1)

    首先 Python3的变量不需要声明 曾经说的C语言的变量需要提前声明的好处现在也不是什么好处了 但是变量必须被赋值 赋值之后变量才会被创建 变量没有类型 直接写出来她的名字 里面装的什么内容 就好了 自然而然她就会有一个数据类型 由这里面
  • Java创建多线程的五种写法

    目录 一 lambda表达式 强烈推荐 最简单 基础格式 举例 运行结果 二 继承 Thread 重写 run 基础格式 举例 运行结果 三 实现 Runnable 重写 run 基础格式 举例 运行结果 四 使用匿名内部类 继承 Thre
  • 【华为OD机试python】不开心的小朋友【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 游乐场里增加了一批摇摇车 非常受小朋友欢迎 但是每辆摇摇车同时只能有一个小朋友使用 如果没有空余的摇摇车 需要排队等候 或者直接离开 最后没有玩上的小朋友会非常不开心
  • C++实验03(03)组合类:Triangle类与Point类

    题目描述 定义一个平面坐标系下的点类Point 有整型数据成员x y坐标值 成员函数包括 1 带默认值的构造函数 默认值均为0 2 拷贝构造函数 3 置x y坐标值 4 取x y的坐标值 参数为两个整型量的引用 分别用于获取x y坐标值 5
  • 深入剖析Kubernetes之容器网络(一)

    文章目录 单机容器网络 容器跨主机网络 Kubernetes网络模型与CNI网络插件 单机容器网络 一个 Network Namespace 的网络栈包括 网卡 Network Interface 回环设备 Loopback Device
  • flink集群与资源@k8s源码分析-资源III 声明式资源管理

    1 资源 资源分析分3部分 资源请求 资源提供 声明式资源管理 本文是第三部分声明式资源管理 2 检查资源需求 检查资源声明 检查资源需求 检查资源声明是flink声明式资源管理的核心方法 上面的资源场景分为两类 提出资源需求和提供资源 检
  • LeetCode题目(Python实现):判断子序列

    文章目录 题目 想法一 遍历 t 算法实现 执行结果 复杂度分析 想法二 遍历 s 算法实现 执行结果 迭代器和生成器 算法实现 执行结果 利用 find 算法实现 执行结果 小结 题目 给定字符串 s 和 t 判断 s 是否为 t 的子序
  • VSCode学习【6】:vscode 文件目录缩进太小,目录树不明显

    1 打开Visual Studio Code 2 定位 英文版 File gt Preformences gt Settings 中文版 文件 gt 首选项 gt 设置 3 搜索 workbench gt tree
  • Vue实例选项之【data】

    data 通过 Vue 实例的 data 选项 可以声明应用内需要双向绑定的数据 建议所有会用到的数据都预先在 data 内声明 这样不至于将数据散落在业务逻辑中 难以维护 div div
  • 祝贺姜宁连任 2023 Apache 软件基金会董事暨 ASF 全球成员大会之我见我闻

    开源社引言 3 月 10 日凌晨 4 点钟 牙签撑开血丝眼球 我连续第 5 年爆肝参加了 ASF 年度全球成员大会 IRC 在线 全文字无语音或视频 当凌晨 4 30 唱名 2023 年 ASF 董事当选名单时 我兴奋地截屏下来 如下 因为
  • 总结 : 毕设采访原文呈现

    优秀毕业生采访问答记录 1 学姐 学长 能否讲讲你大学的生活状态 趣事与感受 2 关于考研有什么感受 3 能否谈谈对本专业的看法 4 学习方法 成功秘诀 5 学姐 学长 是否参加过竞赛 如果有能否和我们分享一下当时参加的想法 目的 收获等等
  • 开源的JAVA(SWT)仿visual studio GUI设计器

    JAVA SWT 仿visual studio GUI设计器 背景介绍 作者从事 JAVA SWT桌面应用开发多年 深感JAVA 开发的 GUI代码的繁锁与重复 于是想改进JAVA图行界面设计器 windowbuilder pro 在上面加
  • yaml 数组_YAML配置文件简介及使用

    简介 YAML 是 YAML Ain t a Markup Language YAML 不是一种标记语言 的缩写 相比JSON格式的方便 语法 内容是大小写敏感 使用缩进表示层级关系 有点像Python缩进 缩进只允许空格 不能使用tab代
  • 类中包含几种成员,分别是什么?

    类中有两种成员 成员变量以及成员函数 其中成员变量分为静态的成员变量以及非静态的成员变量 成员函数分为静态的成员函数以及非静态的成员函数
  • 在Java中使用redisTemplate操作缓存

    在最近的项目中 有一个需求是对一个很大的数据库进行查询 数据量大概在几千万条 但同时对查询速度的要求也比较高 这个数据库之前在没有使用Presto的情况下 使用的是Hive 使用Hive进行一个简单的查询 速度可能在几分钟 当然几分钟也并不
  • linux下定位内存泄漏 /proc/pid/status 解释

    内存泄漏一直是程序定位的盲点 很多时候感觉用着用着内存会越来越少 导致程序崩溃 而一般top等linux命令又不够详细 通过cat proc pid status 命令 可详细查看进程的内存占用情况 其中pid是进程id 进程号去查状态 c