top介绍RES与VIRT区别

这篇博客详细介绍了Linux系统的任务队列、CPU使用率、内存使用情况,包括总内存、空闲内存、使用内存和缓存。重点解析了VIRT、RES和SHR等内存指标的含义,以及它们在进程内存管理中的作用。文章强调了VIRT高并不意味着实际内存使用过高,并提供了理解进程内存占用的方法。
摘要由CSDN通过智能技术生成

在片描述
第一行 任务队列信息
13:54:09 当前时间
up 1:16 系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 0.24, 0.05, 0.02 系统负载,即任务队列的平均长度。三个数值分别为 1分钟c、5分钟、15分钟前到现在的平均值。
第二、三行 任务和CPU的信息

任务:
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
%Cpu(s):
0.5 us 用户空间占用CPU百分比
1.4 sy 内核空间占用CPU百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.1 id 空闲CPU百分比
0.0 wa 等待输入输出的CPU时间百分比
0.0 hi 硬件CPU中断占用百分比
0.0 si 软中断占用百分比
0.0 st 虚拟机占用百分比
第四、五行 内存信息

KiB Mem:
4002264 total 物理内存总量
1213228 free 空闲内存总量
1703096 used 使用的物理内存总量
1085940 buff/cache 用作内核缓存的内存量
KiB Swap:
1942896 total 交换区总量
1942896 free 空闲交换区总量
0 used 使用的交换区总量
1992616 avail Mem 可用交换区总量
进程信息区统计信息

依次对应:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
实存(RES) 与 虚存(VIRT)分析
VIRT:

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间等;
2、假如进程新申请10MB的内存,但实际只使用了1MB,那么它会增长10MB,而不是实际的1MB使用量。
RES:这个才是进程实实在在占用的内存

1、进程当前使用的内存大小,包括使用中的malloc、new分配的堆空间和分配的栈空间,但不包括swap out量;
2、包含其他进程的共享;
3、如果申请10MB的内存,实际使用1MB,它只增长1MB;
SHR:

1、除了自身进程的共享内存,也包括其他进程的共享内存;
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小;
3、计算某个进程所占的物理内存大小公式:RES – SHR;
4、swap out后,它将会降下来。

VIRT高是因为分配了太多地址空间导致。
一般来说不用太在意VIRT太高,因为你有16EB的空间可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值