unix系统中,CPU消耗主要在以下几个方面:用户进程、内核进行、中断处理、I/O等待,Nice时间、丢失时间、空闲等。CPU的利用率则为这些时间所占总时间的百分比。
在unix系统中,可以通过top命令来查看CPU的消耗情况:
top | grep Cpu
依次按列说明:
us: 用户时间(User Time), 表示CPU执行用户进程所占用的时间,通常希望us占比越高越好。
sy: 系统时间(System Time),表示CPU在内核态所花费的时间,sy占比高,说明系统某些地方设计有些不合理,比如频繁的系统调用。
ni:Nice时间(Nice Time),表示系统在调整进程优先级方面花费的时间.
id:空闲时间(Idle Time),表示系统处于空闲期,等待程序运行所占用的时间。当然,id占比越低越好。
wa:等待时间(Waiting Time),表示CPU在等待I/O操作所占时间。若占比过高,说明系统设计不合理,导致花费大量时间等待I/O.
hi:硬件中断处理时间(Hard Irq Time),表示系统处理硬件中断所占时间。
si:软件中断处理时间(Soft Irq Time),表示系统处理软件中断所占用的时间。
st:丢失时间(Steal TIme),表示被强制等待虚拟CPU的时间。如果st占比过高,说明当前虚拟机与该宿主上的其他虚拟机间的CPU争用较为频繁。
如果有多个CPU或多核CPU是,可以按1,查看每个核的CPU利用率:
如果单单输入top命令,则得到如下图:
第二行:
Tasks — 任务(进程),系统现在共有328个进程,其中处于运行中的有1个,327个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第四行:内存状态
16331676k total — 物理内存总量(16GB)
15911696k used — 使用中的内存总量(15.9GB)
419980k free — 空闲内存总量(419M)
240796k buffers — 缓存的内存量 (240M)
注意:这里并不能看出内存的“真实”信息,查看系统内存信息可用free -m命令查看,这里不赘述。
第五行:swap交换分区
8232952k total — 交换区总量(8GB)
463552k used — 使用的交换区总量(463M)
7769400k free — 空闲交换区总量(7.7GB)
4499196k cached — 缓冲的交换区总量(4GB)
第七行以下:各进程(任务)的状态监控
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 — 进程名称(命令名/命令行)
查看某个进程的运行状况,可用命令top -p 进程号。
本文介绍了Unix系统中CPU利用率的组成部分,包括用户时间、系统时间、空闲时间等,并通过top命令详细解析了CPU使用情况,如用户时间、系统时间、空闲时间、等待时间等。同时,讨论了如何查看多核CPU的利用率,以及如何通过top命令关注特定进程的性能。

2075

被折叠的 条评论
为什么被折叠?



