现有的(父)进程复制自己的地址空间(fork)来创建一个新的(子)进程结构。
每个新进程分配有一个唯一的进程ID(PID),满足跟踪和安全性之需。PID与父进程ID(PPID)是新进程环境的元素。
任何进程可创建子进程。所有进程都是第一个系统进程的后代。RHEL7上,第一个系统进程是systemd。
通过fork例程,子进程继承安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。随后,子进程可能exec其自己的程序代码。通常,父进程在子进程运行期间处于睡眠状态,设置一个在子进程完成时发出信号的请求(wait)。在退出时,子进程可能已经关闭或丢弃了其资源和环境,剩余的部分被称作僵停。父进程在子进程退出时收到信号而被唤醒,清理剩余结构,然后继续执行其自己的程序代码。
标志 | 内核定义的状态名称和描述 |
---|---|
R | TASK_RUNNING:进程正在CPU上执行,或者正在等待运行。处于运行中(或可运行)状态时,进程可能正在执行用户例程或内核例程(系统调用),或者已排队并就绪 |
S | TASK_INTERRUPTIBLE:进程处于睡眠状态且正在等待某一条件:硬件请求、系统资源访问或信号。当事件或信号满足该条件时,该进程将返回到运行中 |
D | TASK_UNINTERRUPTIBLE:此进程也在睡眠,但与S状态不同,不会响应传递的信号。仅在特定的条件下使用,其中进程中断可能会导致意外的设备状态 |
K | TASK_KILLABLE:进程处于睡眠状态,与不可中断的D状态相同,但有所修改,允许等待中的任务通过响应信号而被中断(彻底退出)。实用程序通常将可中断的进程显示为D状态 |
T | TASK_STOPPED:进程已被停止(暂停),通常是通过用户或其他进程发出的信号。进程可以通过另一信号返回到运行中状态,继续执行(恢复) |
T | TASK_TRACED:正在被调试的进程也会临时停止,并且共享同一个T状态标志 |
Z | EXIT_ZOMBIE:子进程在退出时向父进程发出信号。除进程身份(PID)之外的所有资源都已释放 |
X | EXIT_DEAD:当父进程清理(获取)剩余的子进程结构时,进程现在已彻底释放。此状态从不会在进程列出实用程序中看到 |
< | 高优先级进程 |
N | 低优先级进程 |
+ | 前台进程组中的进程 |
| | 多线程进程 |
s | 会话进程首进程 |
作用:将vi优先级改为3,vi优先级变为83
实例:
[root@localhost ~]# ps -elf |grep vi
4 S root 781 1 0 80 0 - 24903 poll_s 11:00 ? 00:00:00 /usr/bin/VGAuthService -s
4 S root 9981 8835 0 80 0 - 31558 poll_s 14:56 pts/0 00:00:00 vi a
0 S root 10053 9686 0 80 0 - 28170 pipe_w 14:57 pts/1 00:00:00 grep --color=auto vi
[root@localhost ~]# renice 3 9981
9981 (进程 ID) 旧优先级为 0,新优先级为 3
[root@localhost ~]# ps -elf |grep vi
4 S root 781 1 0 80 0 - 24903 poll_s 11:00 ? 00:00:00 /usr/bin/VGAuthService -s
4 S root 9981 8835 0 83 3 - 31558 poll_s 14:56 pts/0 00:00:00 vi a
0 S root 10105 9686 0 80 0 - 28170 pipe_w 14:58 pts/1 00:00:00 grep --color=auto vi
作用:将vi的优先级改为10
实例:
[root@localhost ~]# nice -n 10 vi
[root@localhost ~]# ps -elf |grep vi
4 S root 781 1 0 80 0 - 24903 poll_s 11:00 ? 00:00:00 /usr/bin/VGAuthService -s
4 T root 10252 8835 0 90 10 - 31533 do_sig 15:01 pts/0 00:00:00 vi
0 S root 10299 9686 0 80 0 - 28170 pipe_w 15:02 pts/1 00:00:00 grep --color=auto vi
作用:显示所有与终端有关的进程
实例:
[root@localhost ~]# ps a
PID TTY STAT TIME COMMAND
1430 tty1 Ss+ 0:00 -bash
8835 pts/0 Ss 0:00 -bash
8878 pts/0 R+ 0:00 ps a
作用:显示进程由哪个用户启动
实例:
[root@localhost ~]# ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1430 0.0 0.1 115392 2096 tty1 Ss+ 11:00 0:00 -bash
root 8835 0.1 0.1 115392 2060 pts/0 Ss 14:35 0:00 -bash
root 8881 0.0 0.0 151064 1804 pts/0 R+ 14:36 0:00 ps u
作用:显示所有与终端无关的进程
实例:
[root@localhost ~]# ps x
PID TTY STAT TIME COMMAND
1 ? Ss 0:04 /usr/lib/systemd/systemd --switched-root --system --
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [ksoftirqd/0]
5 ? S< 0:00 [kworker/0:0H]
7 ? S 0:00 [migration/0]
8 ? S 0:00 [rcu_bh]
9 ? S 0:01 [rcu_sched]
10 ? S 0:00 [watchdog/0]
11 ? S 0:00 [watchdog/1]
12 ? S 0:00 [migration/1]
13 ? S 0:00 [ksoftirqd/1]
15 ? S< 0:00 [kworker/1:0H]
16 ? S 0:00 [watchdog/2]
17 ? S 0:00 [migration/2]
18 ? S 0:00 [ksoftirqd/2]
20 ? S< 0:00 [kworker/2:0H]
21 ? S 0:00 [watchdog/3]
22 ? S 0:00 [migration/3]
23 ? S 0:00 [ksoftirqd/3]
24 ? S 0:00 [kworker/3:0]
25 ? S< 0:00 [kworker/3:0H]
27 ? S 0:00 [kdevtmpfs]
28 ? S< 0:00 [netns]
29 ? S 0:00 [khungtaskd]
30 ? S< 0:00 [writeback]
31 ? S< 0:00 [kintegrityd]
32 ? S< 0:00 [bioset]
33 ? S< 0:00 [kblockd]
34 ? S< 0:00 [md]
40 ? S 0:00 [kswapd0]
41 ? SN 0:00 [ksmd]
42 ? SN 0:00 [khugepaged]
43 ? S< 0:00 [crypto]
51 ? S< 0:00 [kthrotld]
53 ? S< 0:00 [kmpath_rdacd]
54 ? R 0:06 [kworker/0:1]
56 ? S< 0:00 [kpsmoused]
57 ? S 0:00 [kworker/3:2]
58 ? S< 0:00 [ipv6_addrconf]
78 ? S< 0:00 [deferwq]
110 ? S 0:00 [kauditd]
作用:显示所有进程并且是由哪个用户启动的
实例:
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 129248 6596 ? Ss 11:00 0:04 /usr/lib/syste
root 2 0.0 0.0 0 0 ? S 11:00 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11:00 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11:00 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 11:00 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11:00 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11:00 0:01 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 11:00 0:00 [watchdog/0]
root 11 0.0 0.0 0 0 ? S 11:00 0:00 [watchdog/1]
root 12 0.0 0.0 0 0 ? S 11:00 0:00 [migration/1]
root 13 0.0 0.0 0 0 ? S 11:00 0:00 [ksoftirqd/1]
root 15 0.0 0.0 0 0 ? S< 11:00 0:00 [kworker/1:0H]
root 16 0.0 0.0 0 0 ? S 11:00 0:00 [watchdog/2]
root 17 0.0 0.0 0 0 ? S 11:00 0:00 [migration/2]
root 18 0.0 0.0 0 0 ? S 11:00 0:00 [ksoftirqd/2]
root 20 0.0 0.0 0 0 ? S< 11:00 0:00 [kworker/2:0H]
root 21 0.0 0.0 0 0 ? S 11:00 0:00 [watchdog/3]
root 22 0.0 0.0 0 0 ? S 11:00 0:00 [migration/3]
root 23 0.0 0.0 0 0 ? S 11:00 0:00 [ksoftirqd/3]
USER | PID | %CPU | %MEN | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
进程拥有者 | pid | cpu使用率 | 内存的使用率 | 虚拟内存集 | 常驻内存集 | 哪个终端启动的 | 进程状态 | 进程的启动时间 | 运行的累计时长 | 执行的命令 |
作用:显示所有进程
实例:
[root@localhost ~]# ps -e
PID TTY TIME CMD
1 ? 00:00:04 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:00 migration/0
8 ? 00:00:00 rcu_bh
9 ? 00:00:01 rcu_sched
10 ? 00:00:00 watchdog/0
11 ? 00:00:00 watchdog/1
12 ? 00:00:00 migration/1
13 ? 00:00:00 ksoftirqd/1
15 ? 00:00:00 kworker/1:0H
16 ? 00:00:00 watchdog/2
17 ? 00:00:00 migration/2
18 ? 00:00:00 ksoftirqd/2
20 ? 00:00:00 kworker/2:0H
21 ? 00:00:00 watchdog/3
22 ? 00:00:00 migration/3
23 ? 00:00:00 ksoftirqd/3
24 ? 00:00:00 kworker/3:0
25 ? 00:00:00 kworker/3:0H
27 ? 00:00:00 kdevtmpfs
28 ? 00:00:00 netns
29 ? 00:00:00 khungtaskd
30 ? 00:00:00 writeback
31 ? 00:00:00 kintegrityd
32 ? 00:00:00 bioset
33 ? 00:00:00 kblockd
34 ? 00:00:00 md
作用:长格式显示
实例:
[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 8835 8830 0 80 0 - 28848 do_wai pts/0 00:00:00 bash
0 R 0 9191 8835 0 80 0 - 37235 - pts/0 00:00:00 ps
作用:显示更详细的完整进程信息
实例:
[root@localhost ~]# ps -f
UID PID PPID C STIME TTY TIME CMD
root 8835 8830 0 14:35 pts/0 00:00:00 -bash
root 9215 8835 0 14:42 pts/0 00:00:00 ps -f
作用:长格式显示更详细的进程信息
实例:
[root@localhost ~]# ps -elF
F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 32312 ep_pol 6596 3 11:00 ? 00:00:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
1 S root 2 0 0 80 0 - 0 kthrea 0 3 11:00 ? 00:00:00 [kthreadd]
1 S root 3 2 0 80 0 - 0 smpboo 0 0 11:00 ? 00:00:00 [ksoftirqd/0]
1 S root 5 2 0 60 -20 - 0 worker 0 0 11:00 ? 00:00:00 [kworker/0:0H]
1 S root 7 2 0 -40 - - 0 smpboo 0 0 11:00 ? 00:00:00 [migration/0]
1 S root 8 2 0 80 0 - 0 rcu_gp 0 0 11:00 ? 00:00:00 [rcu_bh]
1 S root 9 2 0 80 0 - 0 rcu_gp 0 2 11:00 ? 00
作用:以进程层级格式显示进程相关信息
实例:
[root@localhost ~]# ps -elH
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 S 0 2 0 0 80 0 - 0 kthrea ? 00:00:00 kthreadd
1 S 0 3 2 0 80 0 - 0 smpboo ? 00:00:00 ksoftirqd/
1 S 0 5 2 0 60 -20 - 0 worker ? 00:00:00 kworker/0:
1 S 0 7 2 0 -40 - - 0 smpboo ? 00:00:00 migration/
1 S 0 8 2 0 80 0 - 0 rcu_gp ? 00:00:00 rcu_bh
1 S 0 9 2 0 80 0 - 0 rcu_gp ? 00:00:03 rcu_sched
5 S 0 10 2 0 -40 - - 0 smpboo ? 00:00:00 watchdog/0
5 S 0 11 2 0 -40 - - 0 smpboo ? 00:00:00 watchdog/1
1 S 0 12 2 0 -40 - - 0 smpboo ? 00:00:00 migration/
1 S 0 13 2 0 80 0 - 0 smpboo ? 00:00:00 ksoftirqd/
1 S 0 15 2 0 60 -20 - 0 worker ? 00:00:00 kworker/1:
5 S 0 16 2 0 -40 - - 0 smpboo ? 00:00:00 watchdog/2
1 S 0 17 2 0 -40 - - 0 smpboo ? 00:00:00 migration/
1 S 0 18 2 0 80 0 - 0 smpboo ? 00:00:00 ksoftirqd/
1 S 0 20 2 0 60 -20 - 0 worker ? 00:00:00 kworker/2:
5 S 0 21 2 0 -40 - - 0 smpboo ? 00:00:00 watchdog/3
1 S 0 22 2 0 -40 - - 0 smpboo ? 00:00:00 migration/
1 S 0 23 2 0 80 0 - 0 smpboo ? 00:00:00 ksoftirqd/
1 S 0 24 2 0 80 0 - 0 worker ? 00:00:02 kworker/3:
作用:根据自己需要的选择要显示的字段,这里显示pid,命令和优先级
实例:
[root@localhost ~]# ps -o pid,comm,ni
PID COMMAND NI
9686 bash 0
10510 ps 0
作用:显示当前系统进程树
实例:
[root@localhost ~]# pstree
systemd─┬─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─VGAuthService
├─anacron
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─irqbalance
├─login───bash
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rhnsd
├─rhsmcertd
├─rsyslogd───2*[{rsyslogd}]
├─sshd─┬─sshd───bash───vi
│ └─sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
作用:在当前系统中找符合某些特性的进程。只显示进程号
实例:
[root@localhost ~]# ps -elf |grep vi
4 S root 781 1 0 80 0 - 24903 poll_s 11:00 ? 00:00:00 /usr/bin/VGAuthService -s
4 T root 10252 8835 0 90 10 - 31533 do_sig 15:01 pts/0 00:00:00 vi
0 S root 10797 9686 0 80 0 - 28170 pipe_w 15:12 pts/1 00:00:00 grep --color=auto vi
[root@localhost ~]# pgrep vi
781
10252
作用:根据进程名查找pid号
实例:
[root@localhost ~]# ps -elf |grep vi
4 S root 781 1 0 80 0 - 24903 poll_s 11:00 ? 00:00:00 /usr/bin/VGAuthService -s
4 T root 10252 8835 0 90 10 - 31533 do_sig 15:01 pts/0 00:00:00 vi
0 R root 10940 9686 0 80 0 - 28170 - 15:15 pts/1 00:00:00 grep --color=auto vi
[root@localhost ~]# pidof vi
10252
作用:表示两秒刷新一次虚拟内存状态
实例:
[root@localhost ~]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1432436 3004 269088 0 0 3 1 20 18 0 0 100 0 0
1 0 0 1432452 3004 269088 0 0 0 0 67 54 0 0 100 0 0
^C
作用:表示每2秒刷新一次,刷新3次虚拟内存状态
实例:
[root@localhost ~]# vmstat 2 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1432668 3004 269088 0 0 3 1 20 18 0 0 100 0 0
0 0 0 1432700 3004 269088 0 0 0 0 67 52 0 0 100 0 0
0 0 0 1432684 3004 269088 0 0 0 0 61 53 0 0 100 0 0
作用:显示内存的统计数据
实例:
[root@localhost ~]# vmstat -s
1867048 K total memory
161992 K used memory
137500 K active memory
116868 K inactive memory
1432980 K free memory
3004 K buffer memory
269072 K swap cache
2097148 K total swap
0 K used swap
2097148 K free swap
699 non-nice user cpu ticks
45 nice user cpu ticks
3971 system cpu ticks
7416655 idle cpu ticks
209 IO-wait cpu ticks
0 IRQ cpu ticks
84 softirq cpu ticks
0 stolen cpu ticks
192045 pages paged in
52646 pages paged out
0 pages swapped in
0 pages swapped out
1479471 interrupts
1308503 CPU context switches
1569207617 boot time
13895 forks
实例:
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1430084 3004 270892 0 0 2 0 18 16 0 0 100 0 0
procs:
r(running) //表示等待运行的队列长度,也即等待运行的进程的个数
b(block) //表示阻塞队列长度,也即处于不可中断睡眠态的进程个数
memory:
swpd //交换内存的使用总量
free //空闲物理内存总量
buffer //用于buffer的内存总量
cache //用于cache的内存总量
swap:
si(swap in) //表示从物理内存有多少页面换进swap,也即数据进入swap的数据速率(kb/s)
so(swap out) //表示从swap有多少页面换进物理内存,也即数据离开swap的数据速率(kb/s)
io:
bi(block in) //表示磁盘块有多少个被调入内存中,也即从块设备读入数据到系统的速率(kb/s)
bo(block out) //表示有多少个磁盘块从内存中被同步到硬盘上去了,也即保存数据至块设备的速率(kb/s)
system:
in( interrupts) //表示中断的个数,也即中断速率(kb/s)
cs(context switch) //表示上下文切换的次数,也即进程切换速率(kb/s)
CPU:
us //表示用户空间
sy //表示内核空间
id //表示空闲百分比
wa //表示等待IO完成所占据的时间百分比
st //表示steal,被虚拟化技术偷走的时间(比如运行虚拟机)
作用:强制杀死vi进程
实例:
[root@localhost ~]# pidof vi
10252
[root@localhost ~]# kill -9 $(pidof vi)
作用:在后台运行sleep 1000
实例:
[root@localhost ~]# sleep 1000 &
[1] 3134
作用:显示当前所有的后台作业
实例:
[root@localhost ~]# jobs
[1]+ 运行中 sleep 1000 &
作用:当后面不跟参数是默认调带加号的操作作业到前台运行
实例:
[root@localhost ~]# jobs
[1]- 运行中 sleep 1000 &
[2]+ 运行中 sleep 500 &
[root@localhost ~]# fg
sleep 500
作用:将第一个后台作用调到前台运行,按ctrl+z可将作业处于停止状态
实例:
[root@localhost ~]# jobs
[1]- 运行中 sleep 1000 &
[2]+ 运行中 sleep 500 &
[root@localhost ~]# fg %1
sleep 1000
^Z
[1]+ 已停止 sleep 1000
作用:将第一个操作作业重新运行
实例:
[root@localhost ~]# jobs
[1]+ 已停止 sleep 1000
[2]- 运行中 sleep 500 &
[root@localhost ~]# bg %1
[1]+ sleep 1000 &
作用:将第二个作业杀死
实例:
[root@localhost ~]# jobs
[1]- 运行中 sleep 1000 &
[2]+ 运行中 sleep 500 &
[root@localhost ~]# kill %2
[2]+ 已终止 sleep 500
[root@localhost ~]# jobs
[1]+ 运行中 sleep 1000 &
作用:通过命令替换符,通过sleep命令来替换到pid进行杀死
实例:
[root@localhost ~]# jobs
[1]- 运行中 sleep 500 &
[2]+ 运行中 sleep 600 &
[root@localhost ~]# kill $(pidof sleep )
[1]- 已终止 sleep 500
[2]+ 已终止 sleep 600
[root@localhost ~]# jobs
实例:
[root@localhost ~]# jobs
[1] 运行中 sleep 500 &
[2]- 运行中 sleep 600 &
[3]+ 运行中 sleep 700 &
[root@localhost ~]# killall sleep
[1] 已终止 sleep 500
[2]- 已终止 sleep 600
[3]+ 已终止 sleep 700
[root@localhost ~]# jobs
[root@localhost ~]# sleep 500 &
[1] 4372
[root@localhost ~]# sleep 600 &
[2] 4375
[root@localhost ~]# sleep 700 &
[3] 4380
[root@localhost ~]# pkill sleep
[1] 已终止 sleep 500
[2]- 已终止 sleep 600
[3]+ 已终止 sleep 700
作用:按进程号杀死进程
实例:
[root@localhost ~]# ps -ef|grep sleep
root 1491 1474 0 15:02 pts/0 00:00:00 sleep 100
root 1493 1474 0 15:02 pts/0 00:00:00 grep --color=auto sleep
[root@localhost ~]# kill 1491
[1]+ 已终止 sleep 100
[root@localhost ~]# ps -ef|grep sleep
root 1495 1474 0 15:03 pts/0 00:00:00 grep --color=auto sleep
作用:加-9强制杀死进程
实例:
[root@localhost ~]# sleep 100 &
[1] 1496
[root@localhost ~]# ps -ef|grep sleep
root 1496 1474 0 15:03 pts/0 00:00:00 sleep 100
root 1498 1474 0 15:03 pts/0 00:00:00 grep --color=auto sleep
[root@localhost ~]# kill -9 1496
[root@localhost ~]# ps -ef|grep sleep
root 1500 1474 0 15:04 pts/0 00:00:00 grep --color=auto sleep
[1]+ 已杀死 sleep 100
作用:查看cpu核心数
实例:
[root@localhost ~]# cat /proc/cpuinfo |grep 'model name'
model name : Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
model name : Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
model name : Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
model name : Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
作用:查看内核数
实例:
[root@localhost ~]# cat /proc/cpuinfo |grep 'model name'|wc -l
4
[root@localhost ~]# grep 'processor' /proc/cpuinfo |wc -l
4
作用:显示负载平均值情况,这三个值代表最近1、5和15分钟的负载情况。
实例:
[root@localhost ~]# uptime
15:10:05 up 9 min, 2 users, load average: 0.00, 0.01, 0.01
作用:用于实现全屏动态显示系统信息,会实时刷新
实例:
[root@localhost ~]# top
top - 15:14:22 up 13 min, 2 users, load average: 0.00, 0.01, 0.01
Tasks: 175 total, 2 running, 173 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1867048 total, 1522304 free, 153716 used, 191028 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1522600 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1515 root 20 0 157724 2284 1544 R 0.3 0.1 0:00.01 top
1 root 20 0 129100 6428 2696 S 0.0 0.3 0:01.09 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 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:00.23 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
12 root rt 0 0 0 0 S 0.0 0.0 0:00.04 migration/1
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1
15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
16 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/2
17 root rt 0 0 0 0 S 0.0 0.0 0:00.03 migration/2
18 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/2
19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0
20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0H
21 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/3
22 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/3
23 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/3
25 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:0H
27 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
28 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd
30 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback
31 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
32 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
34 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md
35 root 20 0 0 0 0 R 0.0 0.0 0:00.03 kworker/1:1
40 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
41 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
42 root 39 19 0 0 0 S 0.0 0.0 0:00.00 khugepaged
43 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto
作用:设置延迟时长20秒,每隔20秒刷新一次
实例:
[root@localhost ~]# top -d 20
top - 15:16:08 up 15 min, 2 users, load average: 0.00, 0.01, 0.01
Tasks: 175 total, 1 running, 174 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 1.6 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1867048 total, 1522116 free, 153840 used, 191092 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1522412 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 129100 6428 2696 S 0.0 0.3 0:01.09 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 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:00.24 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
12 root rt 0 0 0 0 S 0.0 0.0 0:00.04 migration/1
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1
15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
16 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/2
17 root rt 0 0 0 0 S 0.0 0.0 0:00.03 migration/2
18 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/2
19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0
20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0H
21 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/3
22 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/3
23 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/3
25 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:0H
27 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
28 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd
30 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback
31 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
32 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
34 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md
35 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kworker/1:1
40 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
41 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
42 root 39 19 0 0 0 S 0.0 0.0 0:00.00 khugepaged
43 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto
51 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld
-命令名称:top b -n 1
作用:指定翻屏1次只显示一屏
实例:
[root@localhost ~]# top b -n 1
top - 15:17:25 up 16 min, 2 users, load average: 0.00, 0.01, 0.01
Tasks: 175 total, 1 running, 174 sleeping, 0 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 : 1867048 total, 1521900 free, 153952 used, 191196 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1522244 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 129100 6428 2696 S 0.0 0.3 0:01.11 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd+
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0+
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration+
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:00.25 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
12 root rt 0 0 0 0 S 0.0 0.0 0:00.04 migration+
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd+
load average:1分钟,5分钟,15分钟
load average //CPU队列中等待运行的任务的个数
cpu(s):多颗CPU平均负载,按1键显示每颗CPU平均负载。
us //表示用户空间;
sy //表示内核空间;
ni //表示调整nice值,CPU占用的比率;
id //表示空闲百分比;
wa //表示等待IO完成所占据的时间百分比;
hi //表示hard interrupt,硬件中断占据的时间百分比;
si //表示软中断占据的时间百分比;
st //表示steal,被虚拟化技术偷走的时间(比如运行虚拟机)
PR //优先级
NI //nice值
VIRT //虚拟内存集
RES //常驻内存集
SHR //共享内存大小
S //进程状态
//top命令交互式子命令:
M //根据驻留内存大小进行排序,默认根据CPU百分比排序
P //根据CPU使用百分比进行排序
T //根据累计时间(占据CPU时长)进行排序
l //是否显示平均负载和启动时间
t //是否显示进程和CPU状态相关信息
m //是否显示内存相关信息
c //是否显示完整的命令行信息
q //退出top命令
k //终止某个进程
1 //显示所有CPU的信息
s //修改刷新时间间隔