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 解释 的相关文章

  • Linux C++ 错误:未定义对“dlopen”的引用

    我在 Linux 上使用 C Eclipse 工作 并且想要使用一个库 Eclipse 向我显示一个错误 undefined reference to dlopen 你知道解决办法吗 这是我的代码 include
  • Linux shell 根据第二列对文件进行排序?

    我有一个这样的文件 FirstName FamilyName Address PhoneNumber 如何按 FamilyName 排序 如果这是 UNIX sort k 2 file txt 您可以使用多个 k用于对多列进行排序的标志 例
  • linux新手关于嵌入式linux设备驱动的问题

    最近在研究linux驱动 正如我读过的那些文章所说 设备驱动程序模块很可能会根据内核的需要自动加载 因此我想知道内核如何确定为特定设备 声卡 I2C spi 设备 等 我也无法彻底想象内核如何在启动时检测每个硬件设备 与嵌入式linux相关
  • 找出Linux上一个进程使用了​​多少内存页

    我需要找出进程分配了多少内存页 每个页面是 4096 进程内存使用情况我在查找正确值时遇到一些问题 当我查看 gome system monitor 时 内存映射下有几个值可供选择 Thanks 这样做的目的是将内存使用量除以页数并验证页大
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • 任何退出 bash 脚本但不退出终端的方法

    当我使用exitshell 脚本中的命令 该脚本将终止终端 提示符 有什么方法可以终止脚本然后停留在终端中吗 我的剧本run sh预计通过直接获取或从另一个脚本获取来执行 编辑 更具体地说 有两个脚本run2 sh as run sh ec
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu

随机推荐

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

    大约一年前 像餐馆和杂货店这样的实体店正争先恐后地设置送货和路边取货 他们中的很多人都在生产中使用混乱工程 在推出新功能和服务之前迅速寻找失败的原因 教育平台也是如此 在短短一周的时间里 从 好的 变成了 绝对必要 企业混沌工程平台 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