监控进程状态
使用ps命令查看当前的进程状态(静态)
ps -aux为常用组合,用于查看进程的用户、PID、占用cpu百分比、占用内存百分比、状态、执行的命令等
[root@zhaoshuang ~]#ps aux |more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 43516 3744 ? Ss 11:28 0:01 /usr/lib/systemd/systemd --system --d
eserialize 3
root 2 0.0 0.0 0 0 ? S 11:28 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11:28 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11:28 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 11:28 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11:28 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R 11:28 0:00 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 11:28 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S 11:28 0:00 [watchdog/0]
ps状态及描述
状态 | 描述 |
---|---|
USER | 启动进程的用户 |
PID | 进程运行的ID号 |
%CPU | 进程占用CPU百分比 |
%MEM | 进程占用内存百分比 |
VSZ | 进程占用虚拟内存的大小(单位KB) |
RSS | 进程占用物理内存实际大小(单位KB) |
TTY | 进程是由哪个终端运行启动的,tty1、pts/0等,?表示内核程序与终端无关 |
STAT | 进程运行过程中的状态 |
START | 进程启动的时间 |
TIME | 进程占用的CPU的总时间(0表示还没超过秒) |
COMMAND | 程序执行的指令,[ ]内输入内核态的进程。没有[ ]的是用户态的进程。 |
STAT的状态及描述
STAT基本状 | 描述 | STAT状态+符号 | 描述 |
---|---|---|---|
R | 进程运行 | s | Ss进程的领导者,父进程 |
S | 可中断睡眠 | < | 进程运行在高优先级上,S<优先级较高的进程 |
T | 进程被暂停 | N | 进程运行在低优先级上,SN优先级较低的进程 |
D | 不可中断的睡眠 | + | 当前进程运行在前台,R+表示进程在前台运行 |
Z | 僵尸进程 | l | 进程是多线程的,Sl表示进程是以线程方式运行的 |
实验一、PS命令查看进程状态切换
在终端1上运行 vim test
[root@zhaoshuang ~]#vim test
在终端2上通过ps命令查看进程的状态
[root@zhaoshuang ~]#ps aux |grep vim
root 18021 0.0 0.5 151508 5168 pts/0 S<+ 22:17 0:00 vim test
root 18023 0.0 0.0 112708 976 pts/1 R<+ 22:19 0:00 grep --color=auto vim
[root@zhaoshuang ~]#
在终端1上挂起vim命令,按下:ctrl+z
&emsp;
Type :quit to exit Vim 0,0-1 All
[1]+ Stopped
回到终端2再次运行ps命令查看状态
[root@zhaoshuang ~]#ps aux |grep vim
root 18021 0.0 0.5 151508 5168 pts/0 T< 22:17 0:00 vim test
root 18031 0.0 0.0 112708 976 pts/1 R<+ 22:20 0:00 grep --color=auto vim
[root@zhaoshuang ~]#
实验二、PS命令查看不可中断状态进程
&emsp;在终端1上使用tar对文件进行打包
[root@zhaoshuang ~/123]# tar czf test.tar.gz /etc/ /usr/ /var/
tar: Removing leading `/' from member names
tar: Removing leading `/' from hard link targets
在终端2上不断查看状态
[root@zhaoshuang ~]#ps aux | grep tar
root 18038 9.1 0.1 123816 1644 pts/1 S<+ 22:23 0:01 tar czf test.tar.gz /etc/ /usr/ /var/
root 18042 0.0 0.0 112708 976 pts/2 R<+ 22:23 0:00 grep --color=auto tar
[root@zhaoshuang ~]#ps aux | grep tar
root 18038 9.1 0.1 123816 1644 pts/1 S<+ 22:23 0:01 tar czf test.tar.gz /etc/ /usr/ /var/
root 18044 0.0 0.0 112708 976 pts/2 R<+ 22:23 0:00 grep --color=auto tar
使用top命令查看当前的进程状态(动态)
[root@zhaoshuang ~]#top
top - 22:25:35 up 10:56, 3 users, load average: 4.06, 1.74, 0.68
Tasks: 103 total, 1 running, 100 sleeping, 2 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995896 total, 100536 free, 154804 used, 740556 buff/cache
KiB Swap: 2047996 total, 2044924 free, 3072 used. 640748 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7101 mongod 20 0 488580 46568 17064 S 0.3 4.7 3:03.94 mongod
1 root 20 0 43516 3744 2420 S 0.0 0.4 0:01.69 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.81 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.00 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:01.08 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
第一行解释及说明
top - 22:25:35 up 10:56, 3 users, load average: 4.06, 1.74, 0.68
状态 | 说明 |
---|---|
22:25:35 | 当前系统时间 |
10:56 | 系统运行时长 |
3 users | 当前有3个用户(终端)连接到系统 |
load average | 平均负载 |
4.06 | 一分钟内平均负载 |
1.74 | 五分钟内平均负载 |
0.68 | 十五分内平均负载 |
第二行解释及说明
Tasks: 103 total, 1 running, 100 sleeping, 2 stopped, 0 zombie
状态 | 说明 |
---|---|
103 total | 当前进程总数 |
1 running | 正在运行的进程数量(R) |
100 sleeping | 睡眠的进程数(S) |
2 stopped | 停止,挂起的进程数(T) |
0 zombie | 僵尸进程数 |
第三列解释及说明
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
状态 | 说明 |
---|---|
0.0 us | 系统用户进程使用CPU百分比 |
0.0 sy | 内核中的进程占用CPU百分比,通常内核是于硬件进行交互 |
0.0 ni | 优先级的进程占用cpu的百分比 |
100.0 id | 空闲CPU的百分比 |
0.0 wa | CPU等待IO完成的时间 |
0.0 hi | 硬中断,占的CPU百分比 |
0.0 si | 软中断,占的CPU百分比 |
0.0 st | 比如虚拟机占用物理CPU的时间 |
top常见指令
指令 | 含义 |
---|---|
h | 查看帮助 |
1 | 数字1,显示所有CPU核心的负载 |
b | 高亮显示处于R状态的进程 |
M | 按内存使用百分比排序输出 |
P | 按CPU使用百分比排序输出 |