linux下VIRT,RES,SHR的含义

简介: linux下VIRT,RES,SHR的含义

如题的三个字段虽说在man top下面都有解释,但感觉有些含糊,看后难以理解它们对进程资源占用的具体情况是如何的。查阅资料后,归纳一下。


VIRT:

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等

2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量


RES:

1、进程当前使用的内存大小,但不包括swap out

2、包含其他进程的共享

3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反

4、关于库占用内存的情况,它只统计加载的库文件所占内存大小


SHR:

1、除了自身进程的共享内存,也包括其他进程的共享内存

2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小

3、计算某个进程所占的物理内存大小公式:RES – SHR

4、swap out后,它将会降下来

Unix/Linux 进程管理相关命令介绍

进程是操作系统用于控制系统资源使用的实体。Unix/Linux 进程管理相关的命令主要有以下几个,在后面的脚本实现中会用到部分命令。

显示进程属性命令

ps 命令:该命令是最基本同时也是非常强大的进程查看命令,用于报告进程标识、用户、CPU 时间消耗以及其他属性。利用它可以确定有哪些进程正在运行及运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。ps 命令可以监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入 / 输出设备进行通信的,如果需要检测其情况,可以使用 ps 命令。

单独使用 ps 命令所看到的进程列表,都是在前台执行的进程,但并非所有进程都在前台执行,也有不少进程隐藏在后台执行。使用命令 ps -e 可以显示所有进程。

进程性能检测命令

top 命令:Linux 使用 top 命令来显示 CPU 占用率为前几位的进程。该命令可以按 CPU 使用率、内存使用率、执行时间对任务进行排序,而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。top 主要字段的含义如下:


表 1 top 字段含义


列名 含义
PID 进程 ID
USER 进程所有者的用户名
PR 任务优先级
NI nice 值。数值越小表示优先级越高,数值越大表示优先级越低
VIRT 进程使用的虚拟内存总量,单位:kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位:kb。RES=CODE+DATA
SHR 共享内存大小,单位:kb
进程状态
D=不可中断的睡眠状态
R= 运行
S= 睡眠
T= 跟踪 / 停止
Z= 僵尸进程
%CPU 上次更新到现在的 CPU 时间占用百分比
TIME+ 进程使用的 CPU 时间总计,精确到 1/100 秒
COMMAND 命令名 / 命令行

topas 命令:AIX 使用 topas 命令在字符终端上报告有关本地系统上的活动的至关重要的统计信息,包括显示 CPU 占用率为前几位的进程。topas 命令以缺省的两秒间隔从系统中提取并显示统计信息。通过命令 topas -P 可以进入 topas 的 process 子部分,显示活动进程的列表。各进程将按它们在监视间隔期间的 CPU 使用率进行排序。

相关文章
|
8月前
|
Linux
linux下的内存查看(virt,res,shr,data的意义)
linux下的内存查看(virt,res,shr,data的意义)
121 0
|
缓存 Linux
Linux 的 top命令参数详解 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
Linux 的 top命令参数详解 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
354 0
|
2天前
|
Linux 网络安全 开发工具
linux 常用命令【编程必备】
linux 常用命令【编程必备】
14 4
|
2天前
|
存储 Linux
Linux文件的上和下,FinalShell文件右键可下文件,先选择root文件夹,然后把他文件往里面拖动,就可以下载了,命令下载,ls -l可以看当前文件目录,sz 文件名可下载,tab补,rz出上
Linux文件的上和下,FinalShell文件右键可下文件,先选择root文件夹,然后把他文件往里面拖动,就可以下载了,命令下载,ls -l可以看当前文件目录,sz 文件名可下载,tab补,rz出上
|
2天前
|
安全 Linux 测试技术
Linux命令setpriv详解
`setpriv` 是Linux下的命令行工具,用于调整进程权限以增强安全性,尤其适用于自动化和非交互式权限切换。它不使用PAM,支持管理能力集、GID/UID及SELinux上下文。例如,`setpriv --reuid=1000 script.sh` 可以以低权限用户运行脚本,而`--selinux-label`可设定SELinux标签。在使用时,应最小化权限、充分测试、保持与其他安全机制的兼容性,并定期审核权限设置。
|
2天前
|
Linux 数据安全/隐私保护
Linux命令setfacl详解
`setfacl`是Linux中用于设置文件访问控制列表的命令,提供比传统权限更细粒度的控制。它允许为特定用户或组添加、修改或删除权限,适用于多用户环境和复杂场景。常用参数包括`-m`(修改规则)、`-x`(删除规则)、`-R`(递归设置)和`-d`(设置默认ACL)。例如,`setfacl -m u:user1:rw- file.txt`给用户`user1`赋予文件`file.txt`的读写权限。记得在使用前确认文件系统支持ACL,并谨慎规划和审查权限设置。
|
2天前
|
Linux 数据处理
Linux命令setarch深度解析与实际应用
`setarch`是Linux下用于调整程序执行环境的命令,它允许在不同CPU架构间运行二进制文件,模拟架构并设置CPU功能标志。通过指定`-a`参数切换架构,如`-a i386`,用`-R`参数启用或禁用如SSE2的功能。在测试兼容性、调试和优化时非常有用。注意正确设置参数,避免滥用,确保程序正常运行。查阅文档、逐步测试和考虑兼容性是最佳实践。
|
2天前
|
Linux Shell 数据处理
Linux命令seq的深入解析与应用
`seq`命令在Linux中用于生成数字序列,适用于数据处理和脚本编写。它支持自定义起始值、步长和结束值,可生成整数或浮点数。通过选项如`-f`(格式化输出)、`-s`(设置分隔符)、`-w`(宽度对齐)和`-r`(逆序)调整输出。在实践中,`seq`常与for循环结合,用于测试数据、文件命名等。注意增量为零会导致无限循环,格式和宽度选项不能同时使用。善用`seq`能提升命令行效率。
|
2天前
|
存储 Unix Linux
探索Linux中的sed命令:强大的文本处理工具
`sed`是Linux/Unix的流编辑器,用于文本替换、删除、新增等操作,无需直接编辑文件。它逐行处理输入,存储在模式空间,执行脚本后输出。主要特点是非交互、支持正则表达式和简洁语法。示例:`sed 's/apple/orange/g' example.txt`替换文本,`/error/d`删除包含"error"的行,`a\---`在每行后加"---"。使用时注意备份、测试命令和理解正则表达式。
|
2天前
|
Linux Perl
Linux命令sdiff详解:并排比较与差异显示
`sdiff`是Linux下的命令行工具,用于并排比较两个文件的差异。它直观地显示不同之处,用`>`和`<`标记差异。主要特点包括并排显示、灵活性和交互性。参数如`-s`仅显示差异行,`-i`忽略大小写,`-o FILE`将结果输出到文件。示例:`sdiff file1.txt file2.txt`。最佳实践包括根据需要调整输出宽度,结合其他命令使用,和利用交互功能。注意用于文本文件比较,大文件可能消耗资源。