1. 什么是进程?
我们运行一个程序,那么我们将运行的程序叫进程。
2. 程序与进程之间的区别?
程序是数据和指令的集合,是一个静态的概念,可以长期存在系统中。
进程是程序运行的过程,是一个动态概念。进程的生命周期概念就是说进程会随着程序的终止而销毁,不会永久存在系统中。
3. 进程运行的状态信息?
静态状态信息
[root@localhost ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 128264 6872 ? Ss 05:15 0:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 05:15 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 05:15 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 05:15 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 05:15 0:01 [kworker/u256:0]
root 7 0.0 0.0 0 0 ? S 05:15 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 05:15 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R 05:15 0:03 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 05:15 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S 05:15 0:00 [watchdog/0]
root 13 0.0 0.0 0 0 ? S 05:15 0:00 [kdevtmpfs]
USER 启动进程的用户
PID 进程运行的pid号
%CPU 进程占用cpu百分比
%MEM 进程占用内存百分比
VSZ 进程占用虚拟内存大小
RSS 进程占用物理内存实际大小
TTY 进程是由哪个终端运行启动的tty1,pts/0等 ?表示内核程序与终端无关
STAT 进程运行过程中的状态
START 进程的启动时间
TIME 进程占用cpu的总时间(为0表示还没超过秒)
COMMAND 程序的运行指令,[方括号]属于内核态的进程。没有[]的是用户态进程
STAT状态
R 进程运行 s 进程是控制进程,Ss进程的领导者,父进程
S 可中断进程 < 进程运行在高优先级上,S<优先级较高的进程
T 进程被暂停 N 进程运行在低优先级上,SN优先级较低的进程
D 不可中断睡眠 + 当前进程运行在前台,R+该表示进程在前台运行
Z 僵尸进程 | 进程是多线程的,Sl表示进程是以线程方式运行
动态状态信息
[root@localhost ~]# top
top - 17:25:33 up 12:10, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 110 total, 2 running, 108 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2028088 total, 820092 free, 395288 used, 812708 buff/cache
KiB Swap: 1023996 total, 1023996 free, 0 used. 1313144 avail Mem
Tasks: 110 total 当前进程总数
2 running 正在运行的进程数
108 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
%Cpu(s):0.3 us 系统用户进程占用cpu百分比
0.3 sy 内核中的进程占用cpu百分比,通常内核是与硬件进行交互
0.0 ni 优先级的进程占用cpu的百分比
99.3 id 空闲cpu的百分比
0.0 wa cpu等待IO完成时间
0.0 hi 硬中断占得cpu百分比
0.0 si 软中断占得cpu百分比
0.0 st 比如虚拟机占用物理cpu的时间
4. top 常见指令
h 查看帮助
1 数字1,显示所有cpu核心的负载
z 以高亮显示数据
b 高亮显示处于R状态的进程
M 按内存使用百分比排序输出
P 按cpu使用百分比排序输出
q 退出