linux ps vsz malloc,认真分析下进程的内存,说说VSZ、RSS、PSS
进程占用的内存可以有以下这些类型:自身的代码
共享库的代码
运行过程分配的堆和栈
通过mmap映射的磁盘文件内容
1. 虚拟内存与物理内存
这里要区分两个概念,虚拟内存和物理内存。物理内存对于进程来说是透明的,进程直接操作的是虚拟内存。而数据和代码是存放在真实的物理内存的,之所以进程在虚拟内存中寻址可以获取数据,是由于虚拟内存与物理内存存在着映射关系。
当我们的进程向系统申请内存时,比方通过malloc方法,得到的其实是虚拟内存,假如进程没有使用这些虚拟内存,那么它们是不会和物理内存关联起来的。比方假如我们malloc 10MB的内存,但是只用了一个byte的,那么进程实际得到的只有一个页的物理内存,也就是4096byte的内存空间。当物理内存被换出到磁盘(swap out),虚拟内存对应的地址还是有效的,假如寻址到这些地址,对应的物理内存就会被换入到内存(swap in)。
虚拟内存是连续的,而物理内存却不肯定。
2. 共享的内存
从进程自身的角度看,虚拟内存是进程独立的,所有内存都是私有的,包括自身代码、共享库、堆栈等,它不用关心共享内存的事情。但实际上在物理内存的层面,很多东西是可以共享的,比方共享的代码库(.so)、自身代码甚至是自身运行时私有的堆栈内存。
2.1 共享库
同一个共享库的代码在物理内存中只会存在一份,这块内存会映射到不同进程的虚拟内存中,对各个进程来说,就像是自己私有的内存一样,而对于系统来说,则是节省了内存的资源。
2.2 进程自身的代码
同样,同一份代码运
linux ps vsz malloc,认真分析下进程的内存,说说VSZ、RSS、PSS相关推荐
- linux ps -ef哪一位是进程号,Linux ps 命令详解
(此文章为收集网络IT达人们博文中有用信息后,整理出来的,感谢他们)(PS:追加感谢 by lxrm) ps aux详细解释ps aux 显示其他用户启动的进程(a) 查看系统中属于自己的进程(x) ...
- 操作系统知识整理——Linux下进程的内存布局以及brk()、sbrk()函数探究
文章目录 前言 一.内存堆栈模型 二.系统栈和用户栈 三.函数调用时的内存栈分配 四.brk(), sbrk() 用法详解 前言 本篇文章是自己在学习xv6操作系统内核时,发现自己对进程在内存中的布局 ...
- Linux进程里运行新代码,linux调度器源码分析 - 新进程加入(三)
中专门描述了copy_process()这个创建函数,而里面有一个函数专门用于进程调度的初始化,就是sched_fork(),其代码如下 int sched_fork(unsigned long cl ...
- linux 程序收到sigsegv信号_linux下定位多线程内存越界问题实践总结
最近定位了在一个多线程服务器程序(OceanBase MergeServer)中,一个线程非法篡改另一个线程的内存而导致程序core掉的问题.定位这个问题历经曲折,尝试了各种内存调试的办法.往往感觉就 ...
- linux ps 命令的结果中VSZ,RSS,STAT的含义和大小
linux ps 命令的结果中VSZ,RSS,STAT的含义和大小 ps是linux系统的进程管理工具,相当于windows中的资源管理器的一部分功能. 一般来说,ps aux命令执行结果的几个列的信 ...
- linux vss rss区别,关于VSS / RSS / PSS / USS的解释是否准确?
我阅读了有关VSS / RSS / PSS / USS的说明: 这篇文章的目的是提供信息,以帮助解释来自各种工具的内存报告,以便可以确定Linux进程和系统的实际内存使用情况. Android有一个称 ...
- MacOS怎么查看进程占用内存是多少
一.背景 在Linux下可以使用 free 命令来方便的查看内存占用情况,如 free -g.free -m等,但MacOS下没有这个命令. 既然如此,那么MacOS里是否有类似的工具呢? 而我们又该 ...
- linux ps与top 命令下wa,hi,si,st等及 VSZ,RSS,VIRT,RES,等关键字含义详解!
Linux中ps与top命令 这两个命令都是查看系统进程信息的命令,但是用处有点儿不同 一:.ps命令–提供系统过去信息的一次性快照 也就是说ps命令能够查看刚刚系统的进程信息 命令:ps aux或 ...
- linux ps vsz malloc,Linux proc 内存
ps:html USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 4238 ...
最新文章
- oracle审计的激活与取消
- 如何解决局域网内传输速度过慢问题
- adb命令 android 串口_ADB使用linux命令查看Android的使用情况
- SpringBoot集成Spring Security(二)注册 、密码加密、修改密码
- 知识管理java_java面试题 - 集合框架
- MySQL数据库(三)
- Ionic项目中如何使用Native Camera
- 管理小故事精髓 100例
- 易班自动答题脚本_自动答题脚本教程及源码分享(无视分辨率)
- macOS 安装 Win11 常见问题及解决方案
- 批处理系统、分时操作系统、实时操作系统
- Syntax Error: Error: No ESLint configuration found Syntax Error: TypeError: eslint.CLIEngine i
- pacman入门使用指南
- requests、xpath应用案例
- JS格式化中国标准时间
- 安装win2003 R2 SP2 x64 可用密钥
- java c HTML,javac html标签
- 简述python文件操作_Python 文件操作
- pytest之Monkeypatching(猴子补丁)
- OrientDB 图状数据库示例