LinuX---进程线程类
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。---windows中的任务管理器
ps 查看当前系统进程状态
ps: 进程状态(process status)
基本语法
ps -aux (功能描述:查看系统中所有进程)
ps -ef (功能描述:可以查看子父进程之间的关系)排序是从启动顺序排的
选项说明
选项 | 功能 |
-a | 选择所有进程 |
-u | 显示所有用户的所有进程 |
-x | 显示没有终端的进程 |
功能说明
ps -aux显示信息说明---显示信息更多
- USER:该进程是由哪个用户产生的
- PID:进程的ID号
- %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;占的是CPU一个核的百分比
- %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
- VSZ:该进程占用虚拟内存的大小,单位KB;---使用过的量
- RSS:该进程占用实际物理内存的大小,单位KB;---当前使用量
- TTY:该进程是在哪个终端中运行的。其中tty1-tty6代表系统的虚拟控制台。pts/0-255代表伪终端,通常用于 SSH 会话、telnet 会话以及其他远程登录会话。
- STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台、I<:几乎没有使用CPU时间
- START:该进程的启动时间
- TIME:该进程占用CPU的运算时间,注意不是系统时间
- COMMAND:产生此进程的命令名
ps -ef显示信息说明---常用
进程是树状结构,1号ID是鼻祖ID
- UID:用户名
- PID:进程ID---唯一的
- PPID:父进程ID---上一级的ID
- C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:该进程是在哪个终端中运行的。
- TIME:CPU时间
- CMD:启动进程所用的命令和参数
- []里面的叫内核线程,每一个内核线程都有一个独立的进程ID
经验技巧
如果想查看进程的CPU占用率和内存占用率,可以使用 -aux;
如果想查看进程的父进程ID可以使用 -ef;
案例实操
查看进程的CPU占用率和内存占用率
feng@ubuntu:~/桌面$ ps -aux
查看进程的父进程ID
feng@ubuntu:~/桌面$ ps -ef
拓展:监察进程+缓冲缓存的区分
1、监察进程
top
top是按CPU占比进行动态查看
2、
缓冲:写,将程序写到缓冲区中,然后缓冲区慢慢地往磁盘上写
缓存:读,将读的内容先移动到缓存区(内存)中,这样的话下次读会非常快
kill 终止进程
基本语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程,容易造成临时资源未回收谨慎使用)
keil 进程号(自己杀死自己,相当于正常关闭 )
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
选项说明
选项 | 功能 |
-9 | 表示强迫进程立即停止 |
案例实操
1、开启多个终端
在XShell中双击开启的标签,即可打开新的终端。
准备两个终端。
2、监控houge.txt
在其中一个终端中执行以下命令。
feng@ubuntu:~/桌面$ tail -F houge.txt
3、查看tail进程号
在另一个终端中查看进程号。
feng@ubuntu:~/桌面$ ps -ef | grep tail
zxf 3976 3660 0 00:56 pts/2 00:00:00 tail -F houge.txt
4、杀死tail进程
feng@ubuntu:~/桌面$ kill -9 3976
此时,另一个终端可以看到提示,进程已被杀死,如下图所示。
5、通过名称杀死进程
killall命令可以根据名称杀死进程,此处的进程名称是精确匹配。通常进程名称为启动命令中可执行文件的名称。对于tail -F houge.txt启动的进程,其进程名称为tail。
再开启一个终端,在其中两个终端中执行以下命令。
feng@ubuntu:~/桌面$ tail -F houge.txt
在最后一个终端中执行以下命令。
atguigu@ubuntu:~/桌面$ killall tail
可以看到另外两个终端的tail进程均被杀死。
free查看服务器总体内存
基本语法
free -m (功能描述:查看服务器总体内存)
案例实操
feng@ubuntu:~/桌面$ free -m
total used free shared buff/cache available
Mem: 3934 543 2879 12 511 3093
Swap:4095 0 4095
top查看系统健康状态
基本命令
top [选项]
选项说明
选项 | 功能 |
-d 秒数 | 指定top命令每隔几秒更新。 |
-i | 使top不显示任何闲置或者僵死进程。 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态。 |
操作说明
操作 | 功能 |
P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top |
查询结果字段解释
第一行信息为任务队列信息
内容 | 说明 |
12:26:46 | 系统当前时间 |
up 1 day, 13:32 | 系统的运行时间,本机已经运行1天 13小时32分钟 |
2 users | 当前登录了两个用户 |
load average: 0.00, 0.00, 0.00 | 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |
第二行为进程信息
Tasks: 95 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
94 sleeping | 睡眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |
第三行为CPU信息
Cpu(s): 0.1%us | 用户模式占用的CPU百分比 |
0.1%sy | 系统模式占用的CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
99.7%id | 空闲CPU的CPU百分比 |
0.1%wa | 等待输入/输出的进程的占用CPU百分比 |
0.0%hi | 硬中断请求服务占用的CPU百分比 |
0.1%si | 软中断请求服务占用的CPU百分比 |
0.0%st | st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
第四行为物理内存信息
Mem: 625344k total | 物理内存的总量,单位KB |
571504k used | 已经使用的物理内存数量 |
53840k free | 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了 |
65800k buffers | 作为缓冲的内存数量 |
第五行为交换分区(swap)信息
Swap: 524280k total | 交换分区(虚拟内存)的总大小 |
0k used | 已经使用的交互分区的大小 |
524280k free | 空闲交换分区的大小 |
409280k cached | 作为缓存的交互分区的大小 |
案例实操
feng@ubuntu:~/桌面$ top -d 1
feng@ubuntu:~/桌面$ top -p 3933