1.top
top -b -n 1 |grep opera|awk '{print "cpu:"$9"%","mem:"$10"%"}'
cpu:0.0% mem:26.4%
2. ps -aux
其中:
RSS-------------进程实际占用物理内存大小;
VSZ--------------任务虚拟地址空间的大小
3./proc/pid/status
[root@localhost ~]# cat /proc/self/status
Name: cat
State: R (running)
SleepAVG: 88%
Tgid: 5783
Pid: 5783
PPid: 5742
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
Groups: 0 1 2 3 4 6 10
VmSize: 6588 kB
VmLck: 0 kB
VmRSS: 400 kB
VmData: 144 kB
VmStk: 2040 kB
VmExe: 14 kB
VmLib: 1250 kB
StaBrk: 0804e000 kB
Brk: 088df000 kB
StaStk: bfe03270 kB
ExecLim: 0804c000
Threads: 1
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
输出解释
参数 解释
Name 应用程序或命令的名字
State 任务的状态,运行/睡眠/僵死/
SleepAVG 任务的平均等待时间(以nanosecond为单位),交互式任务因为休眠次数多、时间长,它们的 sleep_avg
也会相应地更大一些,所以计算出来的优先级也会相应高一些。
Tgid 线程组号
Pid 任务ID
Ppid 父进程ID
TracerPid 接收跟踪该进程信息的进程的ID号
Uid Uid euid suid fsuid
Gid Gid egid sgid fsgid
FDSize 文件描述符的最大个数,file->fds
Groups
VmSize(KB) 任务虚拟地址空间的大小
(total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页
VmLck(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘 (locked_vm)
VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)
VmData(KB) 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据;
(total_vm-shared_vm-stack_vm)
VmStk(KB) 任务在用户态的栈的大小 (stack_vm)
VmExe(KB) 程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (end_code-start_code)
VmLib(KB) 被映像到任务的虚拟内存空间的库的大小 (exec_lib)
VmPTE 该进程的所有页表的大小,单位:kb
Threads 共享使用该信号描述符的任务的个数,在POSIX多线程序应用程序中,线程组中的所有线程使用同一个信号描述符。
SigQ 待处理信号的个数
SigPnd 屏蔽位,存储了该线程的待处理信号
ShdPnd 屏蔽位,存储了该线程组的待处理信号
SigBlk 存放被阻塞的信号
SigIgn 存放被忽略的信号
SigCgt 存放被俘获到的信号
CapInh Inheritable,能被当前进程执行的程序的继承的能力
CapPrm
Permitted,进程能够使用的能力,可以包含CapEff中没有的能力,这些能力是被进程自己临时放弃的,CapEff是CapPrm的一个子集,进程放弃没有必要的能力有利于提高安全性
CapEff Effective,进程的有效能力
范例 1
可以看出该应用程序的正文段(1KB)很小,说明代码很少,是依靠库(1251KB)来执行。栈(138KB)适中,说明 没有太多许多嵌套函数或特别多的临时变量。VmLck为0说明进程没有锁住任何页。VmRSS表示当前进程使用的物理内存为2956KB。当进程开始使用 已经申请的但还没有用的内存时,VmRSS的值开始增大,但是VmSize保持不变。
[root@localhost 1]# cat /proc/4668/status
Name: gam_server
State: S (sleeping)
SleepAVG: 88%
Tgid: 31999
Pid: 31999
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
Groups: 0 1 2 3 4 6 10
VmSize: 2136 kB
VmLck: 0 kB
VmRSS: 920 kB
VmData: 148 kB
VmStk: 88 kB
VmExe: 44 kB
VmLib: 1820 kB
VmPTE: 20 kB
Threads: 1
SigQ: 1/2047
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001006
SigCgt: 0000000210000800
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
[root@localhost 31999]#4 /proc//statm
包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。
[root@localhost ~]# cat /proc/self/statm
654 57 44 0 0 334 0
以下是我自己的理解:
从上面可以看出VmRSS才是我们最关心的内存大小,即
正在使用的物理内存的大小;
而VmSize是进程所拥有的虚拟空间的大小;
“当进程开始使用 已经申请的但还没有用的内存时,
VmRSS的值开始增大,但是VmSize保持不变。”
我们之所以看到许多内存的值的大小超过了内存的总的大小
是因为这里显示的都是虚拟内存的大小,而不是实际的占用的大小;
这是其它的地方的解释
From cat /proc/4743/statm
6114501850018831805934310
1. size :- total program size (611450 X 4096/1024 = 2445800kB = 2388M)
2. resident :- resident set size (185001 X 4096/1024 = 740004kB = 722M)
3. share :- shared pages (883 X 4096 = 3532)
4. trs :- text (code) (18 X 4096/1024 = 72kB = VmExe )
5. drs :- data/stack
6. lrs :- library (593431 X 4096/1024 = 2373724kB = VmData +VmStk)
7. dt :- dirty pages
从这里可以看出第一项是进程的可执行的大小,X4就等于VmSize
而第二项的值X4就等于VmRSS
分享到:
相关推荐
"查看LINUX进程内存占用情况" 在 Linux 系统中,了解进程的内存占用情况非常重要,以便于系统管理员和开发者更好地管理和优化系统性能。下面将介绍三个常用的命令来查看 Linux 进程的内存占用情况。 一、top 命令 ...
查看 LINUX 进程内存占用情况 Linux 操作系统中查看进程内存占用情况是系统管理员和开发人员日常任务中非常重要的一部分。通过查看进程内存占用情况,可以了解系统中进程的资源占用状况,故障排查和性能优化。下面...
在Linux操作系统中,掌握如何查看进程的CPU占用率是系统管理员和开发者必备的技能之一。这一过程涉及到对系统监控工具的使用,理解进程与CPU之间的交互,以及如何解析输出信息。下面将详细介绍如何在Linux环境下查看...
在操作系统的世界里,掌握如何查看和理解系统的各个进程及其内存占用是至关重要的。这不仅可以帮助我们监控系统的健康状况,还能优化资源使用,排查性能问题,甚至发现潜在的安全风险。以下是一些关于“查看系统进程...
本文将详细介绍如何使用几个关键工具来查看Linux进程的内存占用情况。 首先,`top`命令是Linux下最常用且直观的性能监控工具,它能够实时显示系统中每个进程的资源使用状况,包括CPU占用率、内存占用率等。在`top`...
当我们遇到“Linux高内存占用程序”时,通常意味着某些进程正在大量消耗系统资源,这可能导致系统响应变慢,甚至可能导致系统崩溃。理解如何识别、监控和处理这类问题至关重要。 首先,我们需要了解Linux内存的基本...
很简单, 监控linux某进程内存的脚本
本篇文章将详细介绍如何使用Linux命令来查看和排序进程的内存占用情况。 首先,`top`命令是Linux中一个实时显示系统状态的动态视图工具,它能够提供进程的CPU使用率、内存占用、运行时间等信息。在给出的示例中,...
C/C++实现linux和Windows查看系统、进程、服务的内存和CPU使用情况的源代码,生成的是静态链接库,Windows和Linux下经测试都可用,查看系统、指定名称的服务、指定名称的进程占用CPU和内存,查看方式不是通过程序中...
解决Ubuntu中,cupsd内存占用过高的指令,为PDF版本,代码不能复制粘贴。
在IT领域,尤其是在系统管理和性能监控中,了解进程的CPU占用率和内存使用情况是非常重要的。这可以帮助我们诊断系统性能问题,优化程序运行效率,以及有效地管理资源。本篇文章将详细探讨如何在C++中获取指定进程的...
【Linux进程之如何查看进程详情】\n\n在Linux操作系统中,管理和控制进程是系统管理员的基本任务之一。要实现这一目标,首要的就是了解当前运行的进程情况,这可以通过`ps`命令来完成。`ps`命令是Linux下查看进程...
### 如何查看 Linux 下内存占用率 #### 方法-1:使用 `free` 和 `awk` 为了查看Linux系统中的内存占用情况,一种常用的方法是结合使用`free`和`awk`这两个强大的命令。具体步骤如下: 1. **运行 `free -t` 命令**...
按下`Shift + m`可以在列表中按内存使用量进行排序,便于找出内存占用高的进程。 其次,`pmap`命令用于显示进程的内存映射。例如,`pmap pid`会列出指定进程的内存分配详情,包括虚拟内存的大小、共享库、堆栈等...
通过以上方法,你可以深入了解Linux下Java进程及线程对CPU的占用情况,从而进行问题定位和性能优化。在实际操作中,通常会结合多个工具和方法,以便从不同角度全面分析。记得,持续监控和分析是找出问题的关键。
在Go语言中,读取Linux系统的CPU占用率、CPU温度、内存占用率以及磁盘占用率涉及到了系统监控和性能分析。以下将详细介绍如何利用Go实现这些功能。 1. **CPU占用率** CPU占用率是指CPU在单位时间内用于执行用户...
- `M`:按内存占用率排序显示进程列表。 - `h`:显示帮助信息。 - `n`:设置显示进程的数量。 - `q`:退出`top`命令。 #### 使用`free`命令查看内存使用情况 `free`命令用于报告系统内存的使用情况,包括物理内存...
在 64 位 LINUX 系统上,JAVA 进程的内存占用是一个非常重要的问题。根据给定的文件信息,我们可以看到,JAVA 进程在 64 位 LINUX 下占用了巨大内存,达到 11G,已分配地址空间更是 17G。这是一个非常严重的问题,...
Linux操作系统提供了多种命令来查看和监控系统资源的占用情况,这些命令对于系统管理员来说非常重要。本文将介绍三种常用的命令:top命令、free命令和uptime命令。 1. top命令 top命令是一个功能强大的监控系统...