标签:Linux 进程管理 top htop glances
Linux进程概念
Linux下进程的管理(进程管理命令以及一些工具)
1. Linux进程的概念
进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。
通俗点讲,想象一台独立的电脑,里面有很多用户自行安装的程序,用户打开应用程序,这个操作就是把程序调到内存中执行,在内存中执行的这个“程序”就是进程,无论实在Linux中还是Windows中,产生进程的同时都会生成一个ID称之为PID,也就是进程号。进程从发起到最后结束中间的过程中可能处于多种状态,如下:
运行状态:running 进程正在运行中
就绪状态:ready 进程准备运行
睡眠状态:sleeping 处于休眠状态(分为可中断睡眠和不可中断睡眠:通常指被I/O阻塞的进程,等待I/O满足之前无法继续运行)
僵死状态:zombie 找不到归宿的进程,父进程不来管理或者父进程已经死掉
停止状态:stopped 不可被调度运行
2. Linux下进程的管理
进程分为守护进程和前台进程,守护进程即为系统引导过程中启动的进程,与终端无关。前台进程跟终端相关,通过终端启动的进程,当然,也可以把在前台运行的进程送往后台,以守护模式运行,进程还可以根据占用资源的多少来分为CPU密集型和I/O密集型,CPU密集型是对CPU占用率较高的进程,。I/O密集型是等待I/O时间长的进程
进程管理命令:ps/stat/top/htop/glances
2.1 ps :显示系统当前进程的运行状况
ps命令下面的选项集成了UNIX,GNU,BSD三种风格的选项,常用的有-ef/aux/axo
ps -ef:
UID/PID/PPID:该进程的发起者/进程号/父进程号
C: CPU的使用率,百分比
STIME:进程的启动时间,即什么时间启动的进程
TTY:登陆者的终端位置,远程登录则提示pts/n。本地登录显示ttyn, ?表示系统进程
TIME: 进程实际花费CPU运行时间,不是系统时间
CMD: command缩写,触发此进程的命令
ps aux:
USER: 进程的发起者
PID: 进程号
%CPU:进程耗费CPU资源的百分比
%MEM:进程所占用物理内存的百分比
VSZ: 进程用掉的虚拟内存大小,单位KB
RSS: 进程占用的固定内存大小,单位KB
TTY: 进程在哪个终端运行
STAT:进程目前的状态(状态有好多种,如下)
R:running 运行状态
S:interruptible sleeping 可中断睡眠
D:uninterruptible sleeping 不可中断睡眠
T:stopped 停止运行
Z:zombie 僵尸进程
s:session leader
+:前台进程,占据终端的进程
l:多线程进程
<:高优先级进程
N:低优先级进程
TIME:进程实际使用CPU的时间
COMMAND:触发进程的命令
ps axo :自定义显示进程信息
常用的自定义选项:pid/command/psr/pri/ni
psr: 当前进程运行的CPU编号
pri: 当前进程的优先级
ni: 当前进程的nice值
自定义选项可以只用一个,若同时用多个时用 "," 隔开即可
很多时候直接显示出来的信息,并不是我们想要找的,所以就需要过滤一下信息内容
pgrep: 搜索进程
-U : 仅显示以指定用户身份运行的进程
-G :仅显示以指定用户组身份运行的进程
-l :显示PID和进程名
pidof : 显示指定命令所启动的进程ID
例:pidof vim
以上的一些查看进程相关信息的命令都是静态的,当然,很多时候需要实时监控来获取信息,所以也需要一些可以实现动态监测的工具
2.2 top : 相对ps 而言,ps仅是显示静态、执行时间点的进程状态信息,top可以实现动态获取进程信息
信息量有点繁琐,不过很有条理
第一行:系统时间(09:34:00)、系统启动到此时此刻锁经过的时间(22:15)、当前系统已经登录的用户数量 3 users、系统在1,5,15分钟的平均负载,数值越小表示系统剩余资源越多越空闲,如果这个值高于1,就需要注意当前系统负载可能过高
第二行:显示的是目前进程的总量与个别程序在什么状态,图示为1个正在运行、143个出于睡眠状态、0个停止状态的进程、0个僵死状态(如果有僵死状态的程序则需要查看是哪个进程)
第三行:显示CPU的整体负载,如果是多核心CPU,可以按下数字1来切换不同CPU的负载状况
us: user space用户运行程序占用CPU的百分比
sy: system(kernel space) 用于运行内核占用CPU的百分比
ni: nice 用户进程空间所改变过优先级的进程占用CPU的百分比
di: idle空闲CPU百分比
wa: wait io 等待I/O所花费的时间
hi: hardware interrupt硬件中断占用CPU的百分比
si:software interrupt软件中断占用CPU的百分比
st:stolen 被虚拟机“偷走”的百分比
第四行:表示物理内存的使用状况
第五行:表示交换分区的状况
第六行:默认空行,做输入命令用途
top内建命令集:P:以占据CPU大小排序//M:以占据Memory空间大小排序//T:CPU累计占用时间的排序//l:显示系统是否负载运行//t:是否显示进程摘要信息以及CPU负载状态//数字1:平均或者单独显示CPU的负载状态//m:是否显示内存相关的状态信息//q: 退出//s:修改延迟时长//k:终止指定进程
2.3 htop :top 命令的增强版,默认未安装,需要epel源安装
大体上看起来跟top差不多,不过颜色至少是很好看了
htop界面所支持的交互式命令:
u:选择显示指定用户的进程
l:显示光标所在进程所打开的文件列表
s:显示光标所在进程执行的系统调用
a:绑定进程到指定的CPU
#:快速定位光标至PID为#的进程上
t:显示树状结构(进程之间的关系树状图)
2.4 glances : 可以在终端上实时显示重要的系统信息,并动态的对其更新,这个工具可以作用于任何终端屏幕,并且不会消耗大量的CPU资源,通常低于2%。此外glances工具可以将数据捕获生成一个文件,便于日后分析或绘制图形,输出文件可以是电子表格的形式或者html格式
默认是没有安装的,可以用epel源安装
glances工具还支持远程模式:
Server:以监听模式启动glances
启动方式:glances -s -B IPADDR
-B 用于指明监听本地地址
Client:以远程模式启动glances,远程炼乳指定服务器,并Server上的相关性能数据
启动方式:glances -c IPADDR
-c 用于连入的服务器的地址
当系统出现问题的时候,排查的过程中这些工具可能都会用到,因为每一个工具或简单或复杂,都有它自己的用途,很多情况下从最简单的工具排查问题开始,一步一步到最后使用类似htop、glances一类的强大工具,总有一个能找出问题所在
标签:Linux 进程管理 top htop glances
原文地址:http://blog.51cto.com/11742700/2087911