Linux进程管理:
Linux内核:抢占式多任务
进程类型:
守护进程:daemon,跟终端无关,在系统引导中启动进程
用户进程(前台进程):通过终端启动的进程;
注:也可把在前台启动的进程送往后台,以守护模式运行;
进程状态:
运行态:running
就绪态:ready
睡眠态:可中断:interruptable,不可中断:uninterruptable
停止态:暂停于内存中,但不会被调度,除非手动启动
僵死态:zombie
进程的分类:
CPU-Bound
IO-Bound
/proc/:内核中的状态信息;
内核参数:可设置其值从而调整内核运行特性的参数;/proc/sys/
状态变量:其用于输出内核中统计信息或状态信息,仅用于查看;
参数:模拟成文件系统类型
进程:/proc/#
#:PID
进程的所有信息和状态都存放在该文件中,所以有很多进程查看工具帮我们把进程的相关信息数据直观的抽取出来
Linux系统上的进程查看及管理工具
ps命令
ps [OPTIONS]:
选型的风格:1、UNIX options
2、BSD options
3、GNU options
启动进程的方式:
系统启动过程中自动启动,与终端无关的进程;
用户通过终端启动;
BSD风格选项 | |
a | 所有与终端相关的进程 |
x | 所有与终端无关的进程 |
u | 以用户为中心组织进程状态信息 |
aux | 组合选项之一 |
与终端相关的进程;
显示结果各字段意义:
VSZ:虚拟内存集
RSS:常驻内存集
STAT:进程状态
STAT | 含义 |
R | running |
S | interruptable sleeping |
D | uninterruptable sleeping |
T | stoped |
Z | zombie |
+ | 前台进程 |
l | 多线程进程 |
n | 低优先级进程 |
< | 高优先级进程 |
s | session leader |
UNIX风格选项 | |
-e | 显示所有进程 |
-f | 显示完整格式的进程信息 |
-F | 显示更加完整格式的进程信息 |
-H | 以层级结构显示进程的 |
-ef | 组合选项之二 |
-eFH | 组合选项之三 c表示cpu占用比,PSR表示运行于那颗cpu上 |
常用选项组合之四:-eo , axo
o filed1,filed2,,,自定义要显示的字段列表,以逗号分隔;
常用的filed:pid,ni,pri,psr,pcpu,stat,comm,tty,ppid,rtprio
pid:显示进程号
ni:显示Nice值
pri:显示优先级数字
psr:运行在那颗cpu上
pcpu:cpu占用比
stat:状态
comm:运行的命令
tty:运行的终端
ppid:父进程号
rtprio:实时优先级
pgrep,pkill命令:进程过滤专用工具
选项 | |
-u uid | 起作用的用户 |
-U uid | 显示指定用户的进程 |
-t TERMINAL | 与指定的终端相关的进程 |
-l | 显示进程名 |
-a | 显示完整格式的进程名 |
-p pid | 显示此进程的子进程 |
界面首部显示信息:
第五行:交换分区内存空间占用情况;
(注:uptime命令显示top命令显示的第一行的信息:)
进程的状态信息默认以cpu占用比进行排序
键入M表示以内存占用百分比进行排序:
键入T表示以运行时间进行排序
键入P表示以cpu占用百分比进行排序;
键入s表示修改刷新时间间隔,输入刷新隔时间,以秒为单位:
键入k后面跟上进程号表示杀死该进程:
-b:以批次方式显示
htop是top的升级版。
使用方法大同小异;
可用上下按键或鼠标选定进程,键入l命令显示该进程所打开的所有文件:
选定进程后键入s命令,可以显示该进程的所有系统调用,而且能追踪新的系统调用:
可键入F2键设置显示需要的信息和显示格式:
count:设置显示次数
-s:显示内存统计数据
另一种查看方式: cat /proc/PID/maps
dstat [-afv][options..][delay[count]]
可以设置delay时间间隔,和count次数
选项 | |
-c | 显示指定cpu相关信息,也可指定特定的cpu,-C# #, |
-d | 显示磁盘的相关信息,也可指定特定磁盘,-D#,# |
-g | 显示page相关的速率数据 |
-m | Memory的相关统计数据 |
-n | Interface的相关统计数据 |
-p | 显示Process相关统计数据 |
-r | 显示lo请求的相关统计数据 |
-i | 显示中断的信息 |
--tcp | 显示tcp协议的连接 |
--udp | 显示udp协议的连接 |
--raw | 显示raw连接 |
--socket | 显示socket连接 |
--top-cpu | 显示最占用cpu的进程 |
--top-io | 显示最占用io的进程 |
--top-mem | 显示最占用内存的进程 |
查看所有作业:#jobs
作业号后的+号表示优先级,如果使用控制作业命令后不加作业号,默认执行有加号的作业,之后执行有减号的作业最后执行没有符号的作业。
总结
进程管理是Linux系统运维中机器重要的一部分,所以熟练使用各种工具查看噶管理进程在生产环环境中起到了重要作用,也是不可或缺的一环,在进程管理工具中top使用时间比较长,是前期Linux系统中最广泛的一款进程查看工具,如今而言,htop逐渐取代了他的地位,相比较而言,htop拥有更好看的界面和更快捷的操作,更是支持用鼠标操作,在未来的操作系统中将会占据主导地位,dstat工具是一个可以查看各种进程状态的工具,也是非常强大,甚至可以查看网络状态。
原文地址:http://tz666.blog.51cto.com/10990100/1728907