如果我们的Linux系统整个系统资源快要被耗尽时,我们是否能够找出那个最消耗系统资源的进程,然后删除该进程,让系统恢复正常呢,或者由于某个程序存在BUG,导致产生一系列的问题,有如何查找它并结束进程?所有这些情况,我们都应该先查询下系统当前所运行的进程,此时我们可以通过一些进程的管理工具来查看。进程的管理工具有ps,pstree,pggrep,top,pidof等。
1.pstree 显示进程树 pstree -p
2.ps 显示当前系统进程的运行情况 ps -ef 显示所有进程的完整信息。
UID/PID/PPID:代表该进程的发起者/进程号/父进程号
C:cpu的使用率
STIME:进程的启动时间
TTY:登陆者的终端位置,远程登陆的显示pts/n,本地登陆的显示ttyn,?表示系统进程
TIME:进程实际花费的cpu运行时间
CMD:触发这个进程的命令
ps auxUSER:进程的发起者
PID:进程号
%CPU:进程使用掉的cpu资源百分比
%MEM:进程所占用的物理内存百分比
VSZ:进程使用掉的虚拟的内存的大小 单位是Kb
RSS:进程占用的固定内存大小单位是Kb
TTY:指进程是在哪个终端运行
STAT:进程目前的状态(R:running运行状态;S:interruptible sleeping 可中断睡眠;D:uniterruptible sleeping 不可中断睡眠;zombie:僵死态)
自定义的显示 ps axo 如 只显示pid,command,psr(CPU编号),pri(当前进程的优先级),ni(当前进程的nice值)信息 如果需要只显示指定的进程信息,可以通过 pgrep 命令搜索进程 如:只显示 root 用户的进程
3.pgrep 格式 pgrep [options] pattern
-U 仅显示以指定用户身份运行的进程
-G仅显示以指定身份用户组身份运行的进程
-l 显示PID和进程名
4. pidof 显示指定命令所启动的进程,只显示进程编号 5.top ps显示的是某个时间点的进程状态信息,而top命令可以动态的持续监控进程的运行状态。
分别介绍一下每一行的含义
第一行:
1.当前的系统时间 15:56:41 up
2.系统启动到现在所经过的时间 1:51
3.当前已经登陆系统的用户数 2 users
4.系统在1,5,15分钟的平均负载,值越小表示系统越空闲,如果高于1,则需要注意当前系统负载过高
第二行:显示的是目前进程的总量与个别程序在什么状态
第三行:显示的是cpu的整体负载
第四行:表示物理内存的使用情况
第五行:表示交换分区的使用情况
第六行:默认显示空白,当在 top程序当中输命令时显示状态的地方 6.htop 它是 top 的增强版命令,通过 epel 源来安装,安装完执行 htop 命令,显示如下
htop选项:
-d #: 指定延迟时间;
-u UserName: 仅显示指定用户的进程
-s COLUME: 以指定字段进行排序
htop子命令:
s: 跟踪选定进程的系统调用
l: 显示选定进程打开的文件列表
a:将选定的进程绑定至某指定CPU核心
t: 显示进程树
7.free 命令 查看内存空间的使用状态 free -h 易读格式显示 8.vmstat 命令主要用来动态显示系统资源的使用情况,包括cpu,内存,磁盘,网络等资源每一行所代表的含义:
pros:进程相关
memory:内存相关
swap:交换分区相关
io:
bi :从磁盘上接收块设备,从磁盘读数据
bo:发送到磁盘上,写磁盘
system:系统相关
cpu:cpu相关
语法:vmstat[options][delay[count]]
vmstat -s 将一些事件导致的内存变化情况列表说明,如下图 vmstat -d 列出磁盘的读写总量统计表 如下图 vmstat 2 3 指2秒钟执行一次,执行3次就退出,可以动态观察 9.iostat 统计CPU和设备IO信息 10.pmap 观察进程和内存的对应关系,可以了解内存的使用情况每个进程运行都会占用内存空间,可使用这个工具加上进程编号查看,详细了解这个进程里面每一个使用的空间,了解这个进程是否处于健康状态,例pmap 1 pmap -x 1 可以显示详细格式的信息
11.glances 远程监控主机的状态,能够监视CPU,负载,内存,磁盘I/O,网络流量,文件系统,系统温度等信息。
一个当客户端,一个服务器端,模拟两个中断
开启方式思路: 在被监控端以服务器方式开启起来,他会监听其中的一个端口,然后在另一台机器上用glances当客户端去连接被监控的主机
server:以监听模式启动glances
启动方式:glances -s -B IP
-B:用于指明监听的本地地址
Client:以远程模式启动 glances 远程连入指定服务器
启动方式:glances -c IP
-C:用于连入的服务器的地址
glances的显示界面
12.dstat 统计系统资源信息,可以很方便监控系统运行状况并用于基准测试和排除故障,代替vmstat,iostat,在这些命令的基础上增加了监控项,变得灵活了。
例
dstat --top-cpu 显示最占用CPU的进程
dstat --top-io 显示最占用 IO 的进程
13.iotop 用来观察磁盘 IO 使用状况 找出进程对磁盘读写操作最多的
14.kill wxdjm发送控制信号,以实现对进程的管理,每个信号对应一个数字,信号名称以SIG开头,不区分大小写
信号可以用单词表示,也可用数字表示
1) SIGHUP: 无须关闭进程而让其重读配置文件
2) SIGINT: 中止正在运行的进程;相当于Ctrl+c
3) SIGQUIT:相当于ctrl+
9) SIGKILL: 强制杀死正在运行的进程
15) SIGTERM:终止正在运行的进程
18) SIGCONT:继续运行
19) SIGSTOP:后台休眠
wxdjm发送信号
kill [-signal] pid 使用kill的时候需要结合ps等命令来获取pid.
killall [-singnal] program 这里使用的是进程名称,可以结束一个程序启动的进程。