linux中进程管理的三大工具及进程查看命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中进程管理的三大工具及进程查看命令相关的知识,希望对你有一定的参考价值。
1、进程概念
通俗的讲进程就是一个运行起来的程序,只占用系统的内存空间,并且有唯一的进程标识符(PID),但和程序又有区别,程序是指令加数据,是一个进程指令的集合,可以启用一个或者多个进程,是静态的,而且长久保存。进程是动态的,有生命周期,是动态产生的,进程一旦消失,内存空间就会跟着释放。
linux内核存储进程的信息的格式是task_struct,多个task_struct组成链表task_list,通过这个两个来定义和管理进程。
进程的分类:
1、根据不同模式:
1.1、守护进程 :系统一开始启动的,在系统引导过程中启动的进程。
1.2、用户进程:终端启动的进程和用户启动的进程
使用pstree命令查看进程树:
[[email protected] network-scripts]# pstree systemd─┬─NetworkManager───3*[{NetworkManager}] ├─agetty ├─anacron ├─auditd───{auditd} ├─crond ├─dbus-daemon───{dbus-daemon} ├─dmeventd───2*[{dmeventd}] ├─firewalld───{firewalld} ├─lvmetad ├─master─┬─pickup │ └─qmgr ├─polkitd───5*[{polkitd}] ├─rsyslogd───2*[{rsyslogd}] ├─sshd───sshd───sshd───bash───su───bash───pstree ├─systemd-journal ├─systemd-logind ├─systemd-udevd └─tuned───4*[{tuned}]
系统上父进程就是systemd,其它进程都是它的子进程。
2、根据进程的的运行状态:
2.1、运行状态:running
2.2、就绪态:ready 随时可以启动
2.3、睡眠态:又分为四种
可中断:interrupttable
不可中断:uninterrupttable
停止态:stoped, 暂停于内存中,除非手动启动
僵死态:zombie
3、根据操作的密集型划分:
CPU-Bound:占用cpu较多的进程
IO-Bound: 占用I/O较多的进程
ps命令:查看系统上进程的状态
ps [option]:
-a:显示所有终端相关的进程
-x:显示所有终端无关的进程
-u:显示已用户为中心的进程状态信息
组合命令:aux 注意:以 [ ] 表示的都是内核线程
[[email protected] network-scripts]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.7 57756 7608 ? Ss Mar24 0:04 /usr/lib/systemd/systemd --switch root 2 0.0 0.0 0 0 ? S Mar24 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Mar24 0:09 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< Mar24 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S Mar24 0:00 [migration/0]
VSZ:虚拟内存集 // 虚拟内存使用大小 RSS:常驻内存集 // 所有不能被置换出去的内存集 TTY:终端用户 // ?是表示与终端无关的进程 START:启动时间 TIME:运行时间 COMMAND:进程的运行命令 // [ ]表示的内核线程 STAT:内存状态 R:running S: 可中断的睡眠 D:不可终端的睡眠 T:停止状态 Z:僵死态 +:前台进程 l: 多线程进程 N:低优先级进程 <:高优先级进程 s: 会话主导者
常用组合命令2:-ef
-e:显示所有进程
-f :显示完整格式的进程信息
[[email protected] network-scripts]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Mar24 ? 00:00:04 /usr/lib/systemd/systemd --switched-root --system root 2 0 0 Mar24 ? 00:00:00 [kthreadd] root 3 2 0 Mar24 ? 00:00:09 [ksoftirqd/0] PPID:表示的是父进程PID
常用组合3:-eEH
-F:显示完整格式的进程信息,额外信息
-H:以层级结构显示进程的相关信息
[[email protected] network-scripts]# ps -eFH UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 2 0 0 0 0 0 Mar24 ? 00:00:00 [kthreadd] root 3 2 0 0 0 0 Mar24 ? 00:00:09 [ksoftirqd/0] root 5 2 0 0 0 0 Mar24 ? 00:00:00 [kworker/0:0H] root 7 2 0 0 0 0 Mar24 ? 00:00:00 [migration/0] C:表示cpu百分比 PSR:运行于哪颗CPU上
-o:自定义要显示的字段,选项之间用逗号隔开.
pid,ni,pri,psr,pcpu,stat,comm,tty,ppid
ni:nice值,越小优先级越高
pri:优先级
rtprio:实时优先级
常用组合4:-eo axo
[[email protected] network-scripts]# ps -eo pid,ni,pri,comm,user PID NI PRI COMMAND USER 1 0 19 systemd root 2 0 19 kthreadd root 3 0 19 ksoftirqd/0 root
top:显示占用资源最多的进程排名信息
[[email protected] network-scripts]# top top - 04:58:36 up 11:29, 1 user, load average: 0.00, 0.01, 0.05 # 系统时间 登录时间 登录用户 系统负载:1分钟 5分钟 15分钟 Tasks: 233 total, 2 running, 231 sleeping, 0 stopped, 0 zombie # 任务总数 运行进程 睡眠进程 停止进程 僵死进程 %Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1010340 total, 700440 free, 140788 used, 169112 buff/cache # 内存总数 闲置内存数 使用内存数 缓存大小(可回收) KiB Swap: 2097148 total, 2097148 free, 0 used. 705236 avail Mem # 交换分区空间 剩余交换分区 使用交换分区 可用的内存大小 # %Cpu(s): 0.3 us:运行于用户空间所占用的cpu百分比 # %Cpu(s): 0.3 sy: 运行于内核空间所占用的cpu百分比 # ni: nice值调整占用cpu的百分比 # id: 系统空闲所占用cpu的百分比 # wa: 等待I/O所占用的cpu百分比 # hi:硬件中断所占用的cpu百分比 # si:软件终端所占用的cpu百分比 # st:一般指虚拟机所占用的cpu百分比 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6382 root 20 0 0 0 0 S 0.3 0.0 0:04.82 kworker/0:1 #PR: 优先级 #NI: nice值 #VIRT:虚拟内存集 #RES: 常驻内存集 #SHR: 共享内存集
选项:
-d #:指定刷新时间的间隔,默认为3秒
-b:以批次方式显示
-n #:显示多少批次
[[email protected] yum.repos.d]# top -d 5 -b -n 3
htop命令:比top更炫酷狂拽掉渣天,支持鼠标点击。
需要先安装htop,直接yum -y install htop
选项:
-d #:指定延迟时间间隔
-u UserName:仅显示指定用户的进程
-s COLUME:以指定字段进程排序
子命令:
l:显示选定的进程打开的文件列表
s: 显示跟踪选定的进程的系统调用
t: 以层级关系显示各进程状态
a: 将选定的进程绑定至某指定的cpu核心
dstat命令:实时更新系统的信息
选项:
-c:显示cpu --tcp: 显示tcp信息
-C #,#:分别显示每一颗 --udp: 显示udp信息
-d:显示disk --raw: 显示raw信息
-D sda,sdb --socket: 显示套接字信息
-g:显示page相关的速率数据 --top-cpu:显示最占cpu的进程
-m:memory的相关统计数据 --top-io: 显示最占IO的进程
-n:Interface的相关统计数据 --top-mem: 显示最占内存的进程
-p:显示process的相关统计数据 --top-lantency: 显示延迟最大的进程
-r:显示io请求的相关的统计数据 -l:显示系统负载
-s:显示swapped的相关统计数据
示例:
以上是关于linux中进程管理的三大工具及进程查看命令的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )