top命令
显示系统中进程信息
[root@node0 ~]# top top - 09:36:45 up 13:39, 3 users, load average: 0.02, 0.03, 0.05 Tasks: 154 total, 2 running, 152 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1863252 total, 429280 free, 266972 used, 1167000 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 1305808 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6979 root 20 0 746596 43944 15132 S 1.6 2.4 5:24.25 containerd 45301 root 20 0 0 0 0 S 0.5 0.0 0:21.40 kworker/0:0 57660 root 20 0 162012 2332 1624 R 0.5 0.1 0:00.89 top 1 root 20 0 193716 6684 4028 S 0.0 0.4 0:07.68 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.05 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.23 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:04.19 rcu_sched 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain 11 root rt 0 0 0 0 S 0.0 0.0 0:00.25 watchdog/0 12 root rt 0 0 0 0 S 0.0 0.0 0:00.25 watchdog/1 13 root rt 0 0 0 0 S 0.0 0.0 0:00.28 migration/1 14 root 20 0 0 0 0 S 0.0 0.0 0:00.20 ksoftirqd/1 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H 17 root rt 0 0 0 0 S 0.0 0.0 0:00.28 watchdog/2 18 root rt 0 0 0 0 S 0.0 0.0 0:00.09 migration/2 19 root 20 0 0 0 0 S 0.0 0.0 0:00.74 ksoftirqd/2 21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0H 22 root rt 0 0 0 0 S 0.0 0.0 0:00.26 watchdog/3 23 root rt 0 0 0 0 S 0.0 0.0 0:00.26 migration/3 24 root 20 0 0 0 0 S 0.0 0.0 0:00.25 ksoftirqd/3 首部信息 top -(与uptime结果相同,可按l命令隐藏/显示) 系统当前时间,启动多长时间,登录系统用户个数,平均负载(等待运行的进程队列长度,单核一般不超过3):过去1分钟,5分钟,15分钟 tasks:可用t命令隐藏/显示 任务或线程总数,正在运行任务数,睡眠任务数,停止任务数,僵尸任务数 进程状态: 运行态:running 就绪态:ready 睡眠态: 可中断:interruptable 不可中断:uninterruptable 停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped 僵死态:zombie %CPU(s): us, user : 运行用户进程的时间(未调整nice值的) sy, system : 运行内核进程的时间 ni, nice : 运行调整过nice值的用户进程的时间 id, idle : 空闲时间 wa, IO-wait : 等待I/O完成花费的时间 hi : 处理硬件中断花费的时间 si : 处理软件中断花费的时间 st : 被虚拟化偷走的时间 KiB Mem :内存使用信息 KiB Swap:swap使用信息 进程显示字段 PID : 进程唯一ID USER : 任务所有者的有效用户名 PR : 任务的调度优先级。如果您在该字段中看到“rt”,则意味着该任务在实时调度优先级下运行。 NI : 任务的nice值,nice值越小,优先级越高,0表示不会调整优先级 VIRT : 虚拟内存 RES : 常驻内存 SHR : 共享内存 S : 进程状态 D = 不可中断的睡眠态 R = 运行态 S = 睡眠态 T = 停止态 t = 被跟踪停止态 Z = 僵尸态 %CPU : 占用的CPU时间的百分比 %MEM : 占用的MEM时间的百分比 TIME+ : 任务启动以来使用的总CPU时间 COMMAND : 启动任务的命令行或相关程序的名称。可以使用“c”在命令行和名称之间切换。
常用选项:
-d:指定刷新时间间隔,不指默认为3秒;
-b:以批次方式显示;
-n:显示多少批次
-u 或 -U: 显示指定用户名 或者 UID的进程
-p:显示指定进程号的进程
例:指定1秒刷新,以批次显示显示三次
[root@node0 ~]# top -d 1 -b -n 3
常用子命令:
进入top可使用不同的子命令显示不同的效果
首部信息展示:
l:隐藏/显示uptime信息
t:隐藏/显示tasks及CPU信息
m:隐藏/显示内存信息
排序:
P:以占据CPU百分比排序;
M:以占据内存百分比排序;
T:累积占用CPU时间排序
R:反向排序
A:交替模式
用'a'和'w'在4个 窗口间切换。'a'移到后一个窗口,'w'移到前一个窗口。用'g'命令你可以输入一个数字来选择当前窗口
c:显示进程完整的路径和程序名
d/s:修改刷新时间间隔
k:终止指定进程
r:修改nice值
f:设置显示的字段
按空格键选定,带“*”的为要显示的字段
u:显示指定用户的进程
V:以进程树方式显示进程之间的关系
h:显示帮助信息
q:退出
htop命令
与top命令类似,显示更美观,支持使用鼠标直接点击操作
选项:
-d #:指定延迟时间间隔;
-u UserName:仅显示指定用户的进程;
-s COLUME:以指定字段进行排序;
子命令:
l:显示选定的进程打开的文件列表;需要有lsof命令
s:跟踪选定的进程的系统调用;需要有strace命令
t:以层级关系显示各进程状态;
a:将选定的进程绑定至某指定的CPU核心;
dstat命令
用于生成系统资源统计的通用工具
语法:
dstat [-afv] [options..] [delay [count]]
dstat默认显示内容:
[root@node0 ~]# dstat You did not select any stats, using -cdngy by default. ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai hiq siq| read writ| recv send| in out | int csw 0 0 100 0 0 0|9319B 619k| 0 0 | 164B 612B| 121 246 0 0 100 0 0 0| 0 0 | 60B 882B| 0 0 | 126 254 0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 113 241 0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 130 249 0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 104 229 0 0 100 0 0 0| 0 0 | 60B 338B| 0 0 | 117 242
字段说明:
total-cpu-usage CPU使用率
usr:用户进程占用的CPU时间
sys:系统进程占用的CPU时间
idl:空闲时间
wai:等待磁盘I/O花费的时间
hiq:硬中断
siq:软中断
dsk/total 磁盘统计
read:磁盘读
write:磁盘写
net/total 网络统计
recv :网络收包数
send:网络发包数
paging 内存分页统计
in: 换入
out:换出
注:分页较大说明系统用了大量交换空间,当使用了交换空间时表明内存就不够用
system 系统信息
int:中断次数
csw:上下文切换次数
注:如果数值较大,表明CPU非常繁忙,存在大量进程等待CPU调度
dstat默认情况为1秒刷新一次数据,一直刷新下去,直至手动终止
常用选项:
-l, --load:显示系统负载信息
-c,--cpu:显示CPU相关信息
-d,--disk:显示磁盘相关信息
-g, --page:显示page相关的速率数据
-m, --mem:显示MEM的相关统计数据
-n, --net:网络接口相关统计数据
-p, --proc:进程相关统计数据
-r, --io:I/O请求相关统计数据
-s, --swap:显示swapped的相关统计数据
--tcp:tcp连接信息
--udp:udp连接信息
--raw:裸套接字
--socket:套接字
--top-cpu:显示最占用CPU的进程
--top-io:显示最占用io的进程
--top-mem:显示最占用内存的进程
--top-latency:显示延迟最大的进程
ps命令
报告当前的进程快照
使用:
ps [options]:
选项风格:
1.UNIX options,需要加-
2.BSD options,不加-
3.GNU long options,需要--
选项:
a:所有与终端相关的进程
x:所有与终端无关的进程
u:以用户为中心组织进程状态信息显示
-e:显示所有进程
-f:显示完整格式的进程信息
-F:显示完整格式的进程信息
-H:以层级结构显示进程的相关信息
常用组合:
ps aux
ps -ef
ps -eFH
ps -eo/ps axo
o field1,field2....:自定义显示字段,以逗号分隔
常用字段有:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio
例:
[root@node0 ~]# ps axo user,pid,ni,pri,cmd USER PID NI PRI CMD root 1 0 19 /usr/lib/systemd/systemd --system --deserialize 20 root 2 0 19 [kthreadd] root 3 0 19 [ksoftirqd/0] root 5 -20 39 [kworker/0:0H] root 7 - 139 [migration/0] root 8 0 19 [rcu_bh] [root@node0 ~]# ps -eo user,pid,cmd USER PID CMD root 1 /usr/lib/systemd/systemd --system --deserialize 20 root 2 [kthreadd] root 3 [ksoftirqd/0] root 5 [kworker/0:0H] root 7 [migration/0] root 8 [rcu_bh] root 9 [rcu_sched] root 10 [lru-add-drain] root 11 [watchdog/0] root 12 [watchdog/1] root 13 [migration/1]
[root@node0 ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 193716 3604 ? Ss Aug23 0:09 /usr/lib/systemd/systemd --system --deserialize 20 root 2 0.0 0.0 0 0 ? S Aug23 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Aug23 0:08 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< Aug23 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S Aug23 0:01 [migration/0] root 8 0.0 0.0 0 0 ? S Aug23 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S Aug23 0:07 [rcu_sched] root 10 0.0 0.0 0 0 ? S< Aug23 0:00 [lru-add-drain] root 11 0.0 0.0 0 0 ? S Aug23 0:03 [watchdog/0] root 12 0.0 0.0 0 0 ? S Aug23 0:00 [watchdog/1]
字段说明:
USER:进程发起者
PID:进程ID
%CPU:cup占用
%MEM:内存占用
VSZ:虚拟内存集
RSS:常驻内存集
TTY:终端
STAT:运行状态
R:运行
S:可中断睡眠
D:不可中断睡眠
T:停止
Z:僵尸态
+:前台进程
l:多线程进程
N:低优先级进程
<:高优先级进程
s:session leader