1、进程管理
1、什么是进程,什么是线程
1、什么是程序
一般情况下,代码,安装包等全部都是应用程序。
2、什么是进程
应用程序运行起来的能够提供某种服务的实例。
3、什么是线程
进程中处理具体事务的东西。
一个进程中,至少有一个线程,可以有多个线程(多线程)
2、进程的三种状态
就绪态
阻塞态
运行态
3、查看进程(ps)
ps 是获取当系统进程的命令
-a #显示一个终端的所有进程
-u #选择有效的用户id或者是用户名
-x #显示没有控制终端的进程,同时显示各个命令的具体路径。
-aux 一般情况下是一起使用,相同的参数组合还有一个 -ef 参数
-ef 和 -aux之间的区别?
-ef : 会打印出父级PID
-aux : 会打印出CPU、内存相关的使用情况
[root@localhost opt]# ps -a -u -x
[root@localhost opt]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 43696 4044 ? Ss Oct12 0:02 /usr/lib/systemd/
USER : 指的是运行当前进程的用户
PID : 进程的编号
%CPU : CPU的占用率(指在单位时间之内占用CPU的时间比)
%MEM : 内存的占用率
VSZ : 应用程序向系统申请的内存(虚拟内存)
RSS : 应用程序实际上使用的内存大小
TTY : 应用程序正在使用的终端(?代表后台运行,也就是说不占用任何终端)
tty终端 : 操作系统的终端
pts终端 :虚拟终端
STAT : 进程的状态
R :正在运行状态(正在使用CPU)
S :睡眠状态
D 不可中断睡眠,即在睡眠的过程中不可以接收信号唤醒=》执行的IO操作得不到硬件设备的响应
T 停止的进程
Z 僵尸进程
X 死掉的进程(几乎看不见,因为死了就立即回收了)
< 标注了<小于号代表优先级较高的进程
N N代表优先级较低的进程
s 包含子进程
+ +表示在前台运行的进程(前台运行就是指在命令行中运行)
l 小写字母l,代表以线程的方式运行,即多线程
| 管道符号代表多进程
知识储备:
nice 设置进程的优先级
-n : 设置具体的进程优先级
-20 ~ 20 : 数字越大优先级越小
START : 进程开始的时间
TIME : 进程占用CPU的总时间
COMMAND : 进程运行的命令
4、ps详解+
USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存,单位:kb(killobytes)
VSZ是指已分配的线性空间大小,这个大小通常并不等于程序实际用到的内存大小,产生这个的可能性很多
比如内存映射,共享的动态库,或者向系统申请了更多的堆,都会扩展线性空间大小。
RSS: 占用实际内存,单位:kb(killobytes)
RSZ是Resident Set Size,常驻内存大小,即进程实际占用的物理内存大小
TTY: 进程运行的终端
STAT: 进程状态 man ps (/STATE)
R 运行
S 可中断睡眠 Sleep,即在睡眠的过程中可以接收信号唤醒=》执行的IO操作可以得到硬件设备的响应
D 不可中断睡眠,即在睡眠的过程中不可以接收信号唤醒=》执行的IO操作得不到硬件设备的响应
T 停止的进程
Z 僵尸进程
X 死掉的进程(几乎看不见,因为死了就立即回收了)
< 标注了<小于号代表优先级较高的进程
N N代表优先级较低的进程
s 包含子进程
+ +表示是前台的进程组
l 小写字母l,代表以线程的方式运行,即多线程
| 管道符号代表多进程
START: 进程的启动时间
TIME: 进程占用CPU的总时间
COMMAND: 进程文件,进程名
带[]号的代表内核态进程
不带[]号的代表用户态进程
5、top命令
实时查看进程的命令。
1、基本参数
默认情况下,top命令是3秒刷新一次
-d 指定刷新的频率
-p 查看指定进程的信息
-u 查看指定用户的进程
-n 查看指定top次数的信息
[root@localhost ~]# top
[root@localhost ~]# top -d 1 # 1秒刷新一次
[root@localhost ~]# top -d 1 -p 进程的pid
[root@localhost ~]# top -d 1 -p `pgrep nginx | head -1`
[root@localhost ~]# top -d 1 -p `pgrep sshd | head -1`,33 # 查看sshd以及pid为33的进程
[root@localhost ~]# top -d 1 -u nginx # 查看指定用户进程
[root@localhost ~]# top -b -n 2 > top.txt # 将2次top信息写入到文件
2、系统整体统计信息
top - 11:35:39 up 1 day, 25 min, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 91 total, 1 running, 90 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