动态和静态查看一个进程的内存使用
我们使用top命令来查看CPU使用状况。
top不会产生输出,屏幕内容保持不变。它刷新屏幕以显示新信息。因此,如果您只执行top并保持屏幕一直开启,则屏幕始终显示最新信息。退出top的命令为q,或者按下Ctrl-C.
top - 17:03:45 up 58 days, 4:01, 1 user, load average: 0.00, 0.02, 0.00
Tasks: 172 total, 1 running, 171 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2% us, 0.1% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 4037036k total, 4007280k used, 29756k free, 93384k buffers
Swap: 8385888k total, 71536k used, 8314352k free, 3068240k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27167 oracle 16 0 2011m 490m 483m S 1 12.4 0:46.93 oracle
27175 oracle 15 0 2011m 517m 510m S 1 13.1 0:49.78 oracle
5003 oracle 15 0 2021m 33m 29m S 0 0.9 3:56.10 oracle
1 root 16 0 4756 552 460 S 0 0.0 0:09.31 init
2 root RT 0 0 0 0 S 0 0.0 0:00.47 migration/0
...............................
第一行(top):
top - 17:03:45 up 58 days, 4:01, 1 user, load average: 0.00, 0.02, 0.00
“17:03:45”为系统当前时刻;
“58 days, 4:01”为系统启动后到现在的运作时间;
“1 user”为当前登录到系统的用户,更确切的说是登录到用户的终端数--同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过CPU数目时,CPU将比较吃力的负载当前系统所包含的进程;
第二行(Tasks):
“172 total”为当前系统进程总数;
“1 running”为当前运行中的进程数;
“171 sleeping”为当前处于等待状态中的进程数;
“0 stoped”为被停止的系统进程数;
“0 zombie”为僵死的进程数;
第三行(Cpus):
显示CPU利用率的详细信息,如果有多个CPU,屏幕将在每行显示一个CPU的信息。
第四行(Mem):
显示可用的和已利用的内存
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
其余的显示内容以表格格式显示进程。下面对各列进行解释:
列描述
PID 进程的进程ID
USER 运行该进程的用户
PRI 进程的优先级
NI nice值:该值越高,任务的优先级越低
SIZE 该进程使用的内存(代码+数据+堆栈)
RSS 该进程使用的物理内存
SHARE 该进程使用的共享内存
STAT 该进程的状态,用代码显示。一些主要的状态代码包括:
R— 正在运行
S— 正在休眠
Z— 迟滞
T— 已停止
您还会看到第二个和第三个字符,它们表示:
W— 已换出的进程
N— 正nice值
%CPU 该进程使用的CPU百分比
%MEM 该进程使用的内存百分比
TIME 该进程使用的总CPU时间
CPU 如果这是一个多处理器系统,该列指明正在其上运行进程的CPU的ID。
COMMAND 该进程发出的命令
top运行中可以通过top的内部命令对进程的显示方式进行控制。内部命令如下:
s -改变画面更新频率
l -关闭或开启第一部分第一行top信息的表示
t -关闭或开启第一部分第二行Tasks和第三行Cpus信息的表示
m -关闭或开启第一部分第四行Mem和第五行Swap信息的表示
N -以PID的大小的顺序排列表示进程列表
P -以CPU占用率大小的顺序排列进程列表
M -以内存占用率大小的顺序排列进程列表
h -显示帮助
n -设置在进程列表所显示进程的数量
q -退出top
---------------------------------------------------------
动态查看一个进程的内存使用
- 1、top命令
- top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s
- 如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage)
静态查看一个进程的内存使用
- 1、pmap命令
- pmap -d pid
- 最后一行的值
mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz
writeable/private 表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小
shared 表示进程和其他进程共享的内存大小 - 2、ps命令
- ps aux|grep process_name
- 3、查看/proc/process_id/文件夹下的status文件
- Name: php
- State: R (running)
- SleepAVG: 0%
- Tgid: 21574
- Pid: 21574
- PPid: 10005
- TracerPid: 0
- Uid: 1000 1000 1000 1000
- Gid: 100 100 100 100
- FDSize: 256
- Groups: 16 100
- VmPeak: 161740 kB
- VmSize: 161740 kB
- VmLck: 0 kB
- VmHWM: 107144 kB
- VmRSS: 107144 kB
- VmData: 106192 kB
- VmStk: 84 kB
- VmExe: 5588 kB
- VmLib: 7884 kB
- VmPTE: 268 kB
- Threads: 1
- SigQ: 0/69632
- SigPnd: 0000000000000000
- ShdPnd: 0000000000000000
- SigBlk: 0000000000000000
- SigIgn: 0000000000001000
- SigCgt: 00000001818040a7
- CapInh: 0000000000000000
- CapPrm: 0000000000000000
- CapEff: 0000000000000000
- Cpus_allowed: 00000000,00000000,00000000,0000000f
- Mems_allowed: 1
- 任务虚拟地址空间的大小 VmSize
- 应用程序正在使用的物理内存的大小 VmRSS
转自:http://www.cnblogs.com/yy2011/archive/2011/09/13/2175026.html
转载于:https://www.cnblogs.com/zjfdbz/archive/2013/03/10/2952484.html
动态和静态查看一个进程的内存使用相关推荐
- linux查看所有进程占用内存命令,LINUX进程内存占用查看命令
(1)top使命 代码如下 $ top -u oracle 1.top命令 代码如下 top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s 如果想根 ...
- 查看linux每个进程占用内存多少,Linux下如何查看哪个进程占用内存多?
1.top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者 ...
- lsof 查看一个进程打开哪些fd及对应的文件或套接字操作
如何查看一个进程打开哪些fd及对应的文件或套接字操作 /********************************************************************** A ...
- oracle 根据spid查sql,探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句...
Oracle数据库查看一个进程是如何执行相关的实际sql语句 代码如下: SELECT b.sql_text,sid,serial#,osuser,machine FROM v$session a,v ...
- linux 如何查看一个进程空间所装载的共享库
linux中每个进程空间都为共享库划分了专门区域,如下所图 查看一个进程所有已被映射的区域可以使用/proc/PID/maps看到 例如
- AIX详细查看用户/进程使用内存
AIX详细查看用户/进程使用内存 来源:https://blog.csdn.net/mydriverc2/article/details/41956063 问题描述:通过topas发现%comp内存已 ...
- linux查看进程grep工作组,Linux下查看一个进程打开了哪...-linux 如何找到进程的工作目录...-使用 grep 恢复误删的文本文件_169IT.COM...
Linux下查看一个进程打开了哪些文件的命令示例,供大家学习参考. 查看进程14755(httpd)打开了哪些文件: 代码如下: localhost:~# lsof -p 14755 COMMAND ...
- Linux 查看某一个进程占用内存情况
Linux下查看某一个进程所占用的内存,首先可以通过ps命令找到进程id,比如 ps -ef | grep kafka 可以看到kafka这个程序的进程id 可以看到是2913,现在可以使用如下命令查 ...
- linux线程有什么用,在linux下查看一个进程它有多少个线程是用什么命令?
ps -ef f 用树形显示进程和线程,比如说我想找到proftp现在有多少个进程/线程,可以用 $ ps -ef f | grep proftpd nobody 23117 1 0 Dec23 ? ...
最新文章
- 牛客 - 养花(最大流)
- mysql数据库表子查询语句_MySQL使用子查询教程
- 10种电脑无法启动故障
- Android Design 1: Back键和Up键在App导航中的表现
- 【路径规划】基于matlab GUI改进的DWA算法机器人静态避障路径规划【含Matlab源码 678期】
- Android简单实现图片缩略图类ThumbnailUtils
- 开源项目CRMEB 任意文件下载漏洞分析
- 云服务器的带宽是什么意思?怎么选择带宽大小?
- 为什么我的echarts字体样式这么丑?Echarts 柱状图、饼图 等标签、字体、样式调整
- ASP.NET Development Server的Directory Browsing模式HTML垃圾代码
- Ubuntu上不了网,不可以ping网址,但是可以ping通其ip
- 《Linux高性能服务器编程》阅读笔记 之(二)IP 协议详解
- 学习PPT与Excel的各种高级应用并掌握相关技巧
- SAP PR采购申请的审批策略
- ubuntu18 dso安装
- arcgis 投影坐标系的区分
- 需求调研过程管理小议
- MySQL 表分区?涨知识了
- 星号构成的直角三角形图案
- LeetCode 698.Partition_to_k_equal_subsets. Three different solutions: DFS, DP, DP topdown + DFS