进程是正在执行的程序或命令,每一个进程都是一个正在运行的实体,都有自己的地址空间,并占用一定的系统资源。在windows中,打开任务管理器->进程就可以看到正在运行的进程。
- 判断服务器健康状态
- 查看系统中所有进程
- 杀死进程
1.ps aux //查看系统中的所有进程,使用bsd操作系统格式
2.ps -le //查看系统的所有进程,使用linux标准命令格式
1.ps aux命令
a表示all,u表示user,x表示列出完整信息
user pid %cpu %mem vsz rss tty stat start time command
root 1 0.1 0.1 2892 1404 ? ss 20:40 0:03 /sbin/init
root 2 0.0 0.0 0 0 ? s 20:40 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? s 20:40 0:00 [migration/0]
...
各个字段的含义
列 | 字段 | 含义 |
---|---|---|
1 | user | 进程由那个用户产生的 |
2 | pid | 进程号 |
3 | %cpu | 占用的cpu比例 |
4 | %mem | 占用的内存比例 |
5 | vsz | 该进程使用掉的虚拟内存量(kb) |
6 | rss | 该进程占用的固定的内存量 |
7 | tty | 该进程是在哪个终端机上面运行的,如果与终端机无关,则显示? |
8 | stat | 该进程的状态(r/s/t/z) |
9 | start | 进程被触发的时间 |
10 | time | 该进程实际使用cpu的时间 |
11 | command | 该进程的实际指令 |
进程状态 | 含义 |
---|---|
r | 正在运行 |
s | 睡眠 |
t | 停止 |
s | 包含子进程 |
位于后台 |
2.top命令,查看系统健康状态
输入top命令,显示如下信息
前面几行的内容说明
第一行内容 | 说明 |
---|---|
21:56:54 | 系统当前时间,虚拟机里的系统时间不一定准确 |
up 1:16 | 系统运行了1小时16分钟 |
1 user | 当前登录了1个用户 |
load average:0.00,0.01,0.00 | 系统在之前的1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷 |
第二行内容 | 说明 |
---|---|
tasks:150 total | 一共150个进程 |
1 running | 1个在运行 |
149 sleeping | 149个在休眠 |
0 stopped | 0个停止 |
0 zombie | 0个僵尸进程 |
第三行内容 | 说明 |
---|---|
cpu(s):0.1%us | 用户模式占用的cpu百分比 |
0.2%sy | 系统模式占用的cpu百分比 |
0.0%ni | 改变过优先级的用户进程占用的cpu百分比 |
99.7%id | 空闲cpu的百分比,这个比较重要 |
0.0%wa | 等待输入/输出的进程的占用cpu百分比 |
0.0%hi | 硬中断请求服务占用的cpu百分比 |
0.1%si | 软中断请求服务占用的cpu百分比 |
0.0%st | st(steal time)虚拟时间百分比。就是当有虚拟机时,虚拟cpu等待实际cpu的时间百分比 |
第四行内容 | 说明 |
---|---|
mem:1030608k total | 物理内存总大小(kb),(我给虚拟机分配的内存是1024mb) |
164772k used | 用掉的内存 |
865836k free | 空闲的内存 |
14816k buffers | 做缓冲的内存数量 |
第五行内容 | 说明 |
---|---|
swap:1023992k total | swap分区一共1023992kb |
0k used | 用掉了0k |
1023992k free | 1023992k空闲 |
76092k cached | 76092kb作为缓存的交互分区 |
前面的五行内容比较重要的是cpu负载,cpu的空闲率,物理内存的空闲三个指标。top命令本身是比较耗费资源的。
僵尸进程是指进程正在终止,但是还没有终止,有可能是因为卡死了
3.kill命令,杀死进程
kill -l 查看支持的信号
常用的信号有:
信号代号 | 信号名称 | 信号说明 |
---|---|---|
1 | sighup | 这个信号让进程立即关闭,然后重新读取配置文件之后重启 |
9 | sigkil | 立即结束程序运行,一般用于强制终止进程 |
15 | sigterm | 正常结束进程,如果无法正常结束,会尝试用9信号 |
命令格式:kill [-信号] pid //不指定信号的话默认为15
killall 命令
命令格式:killall [选项] [信号] 进程名 //按照进程名终止进程
选项:
-i:交互式,询问是否要杀死某个进程
-i:忽略大小写
pkill命令
命令格式:pkill [选项] [信号] 进程名 //按照进程名终止进程
选项:
-t 终端号:按照终端号踢出用户