用户下达运行程序的命令后,就会产生进程。同一程序可产生多个进程(一对多关系),以允许同时有多位用户运行同一程序,却不会相冲突。进程需要一些资源才能完成工作,如CPU使用时间、内存、文件以及I/O设备,且为依序逐一进行,也就是每个CPU核心任何时间内仅能运行一项进程。
运行态:running
就绪态:ready
睡眠态:
可中断:interruptable
不可中断:uninterruptable
停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped
僵死态:zombie
top命令能够实时显示系统运行时的动态。它可以显示系统摘要信息,以及目前Linux内核管理的作业列表
直接top命令后:
我们从每行开始解释下:
第一行:
top - 12:34:51、当前时间;up 10:39、系统已运行时间;2 users、当前在线用户;
load average、平均负载 1分钟,5分钟,15分钟;
第二行:
Tasks: 75 total、当前作业总数;1 running、1个正在运行;74 sleeping、74个处于睡眠态;
0 stopped、0个处于停止态;0 zombie、0个处于僵死态
第三行:
Cpu(s) us:用户空间占用CPU百分比;sy:内核空间占用CPU百分比;id:空闲CPU百分比;
ni:用户进程空间内改变过优先级的进程占用CPU百分比;wa:等待输入输出的CPU时间百分比;
hi:硬中断占用CPU时间百分比;si:软中断占用CPU时间百分比;st:被虚拟化偷走的时间百分比
第四行和第五行分别是 内存 和 交换空间 的使用情况,total:总量;used:已经使用;free:空闲的;
接下来则是高亮部分
PID:进程标识符
USER:进程所有者
PR:优先级
NI:nice值
VIRT:虚拟内存大小
RES:常驻内存
SHR:共享内存
S:进程状态
R:running
S:interruptable sleeping
D:uninterruptable sleeping
T:stopped
Z:zombie
+:前台进程
l:多线程进程
N:低优先级进程
<:高优先级进程
s:session leader
%CPU:CPU时间占用百分比
%MEM:内存空间占用百分比
TIME+:使用CPU时间总计
COMMAND:执行的命令
top命令还有许多内置命令:
排序:
P:以占据的CPU百分比;
M:占据内存百分比;
T:累积占据CPU时长;
首部信息显示/隐藏:
刷新时间信息:l命令
作业及CPU信息:t命令
指定单个CPU信息:1 (数字)
内存信息:m命令
退出命令:q
修改刷新时间间隔:s
终止指定进程:k
htop常用选项和命令
选项:
-d #: 指定延迟时间;
-u UserName: 仅显示指定用户的进程;
-s COLOMN: 以指定字段进行排序;
命令:
s:跟踪选定进程的系统调用;
l:显示选定进程打开的文件列表;
a:将选定的进程绑定至某指定CPU核心;
t:显示进程树
内建命令:
a Sort processes automatically l Show/hide logs
c Sort processes by CPU% b Bytes or bits for network I/O
m Sort processes by MEM% w Delete warning logs
p Sort processes by name x Delete warning and critical logs
i Sort processes by I/O rate 1 Global CPU or per-CPU stats
d Show/hide disk I/O stats h Show/hide this help screen
f Show/hide file system stats t View network I/O as combination
n Show/hide network stats u View cumulative network I/O
s Show/hide sensors stats q Quit (Esc and Ctrl-C also work)
y Show/hide hddtemp stats
常用选项:
-b:以Byte为单位显示网卡数据速率;
-d:关闭磁盘I/O模块;
-f /path/to/somefile:设定输入文件位置;
-o {HTML|CSV}:输出格式;
-m:禁用mount模块
-n:禁用网络模块
-t #:延迟时间间隔
-1:每个CPU的相关数据单独显示;
性能检测工具:dstata
dstat [-afv] [options..] [delay [count]]
常用选项
-c:显示cpu相关信息;
-C #,#,...,total
-d:显示disk相关信息;
-D total,sda,sdb,...
-g:显示page相关统计数据;
-l:显示负载的相关数据
-m:显示memory相关统计数据;
-n:显示network相关统计数据;
-p:显示process相关统计数据;
-r:显示io请求相关的统计数据;
-s:显示swapped相关的统计数据;
--tcp
--udp
--unix
--raw
--socket
--ipc
--top-cpu:显示最占用CPU的进程;
--top-int:显示最占用中断的进程;
--top-io:显示最占用io的进程;
--top-mem:显示最占用内存的进程;
--top-lantency:显示延迟最大的进程;