Linux操作系统进程管理的分析与应用_第1页
Linux操作系统进程管理的分析与应用_第2页
Linux操作系统进程管理的分析与应用_第3页
Linux操作系统进程管理的分析与应用_第4页
Linux操作系统进程管理的分析与应用_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LinuxLinux 操作系统进程管理的分析与应用操作系统进程管理的分析与应用 1 1 发布时间 2006 05 19 07 12 来源 LinuxSir 作者 北南南北 目录目录 1 程序和进程 1 1 进程分类 1 2 进程的属性 1 3 父进程和子进程 2 进程管理 2 1 ps 监视进程工具 2 1 1 ps 参数说明 2 1 2 ps 应用举例 2 2 pgrep 3 终止进程的工具 kill killall pkill xkill 3 1 kill 3 2 killall 3 3 pkill 3 4 xkill 4 top 监视系统任务的工具 4 1 top 命令用法及参数 4 2 top 应用举例 5 进程的优先级 nice 和 renice 6 关于本文 7 后记 8 参考文档 9 相关文档 1 1 程序和进程 程序和进程 程序是为了完成某种任务而设计的软件 比如 OpenOffice 是程序 什么是进程呢 进程就 是运行中的程序 一个运行着的程序 可能有多个进程 比如 LinuxSir Org 所用的 WWW 服务器是 apache 服 务器 当管理员启动服务后 可能会有好多人来访问 也就是说许多用户来同时请求 httpd 服务 apache 服务器将会创建有多个 httpd 进程来对其进行服务 1 11 1 进程分类 进程分类 进程一般分为交互进程 批处理进程和守护进程三类 值得一提的是守护进程总是活跃的 一般是后台运行 守护进程一般是由系统在开机时通过 脚本自动激活启动或超级管理用户 root 来启动 比如在 Fedora 或 Redhat 中 我们可以定义 httpd 服务器的启动脚本的运行级别 此文件位于 etc init d 目录下 文件名是 httpd etc init d httpd 就是 httpd 服务器的守护程序 当把它的运行级别设置为 3 和 5 时 当系统启动时 它会跟着启动 root localhost chkconfig level 35 httpd on 由于守护进程是一直运行着的 所以它所处的状态是等待请求处理任务 比如 我们是不是 访问 LinuxSir Org LinuxSir Org 的 httpd 服务器都在运行 等待着用户来访问 也就是等 待着任务处理 LinuxLinux 操作系统进程管理的分析与应用操作系统进程管理的分析与应用 2 2 发布时间 2006 05 19 07 12 来源 LinuxSir 作者 北南南北 1 2 进程的属性 进程 ID PID 是唯一的数值 用来区分进程 父进程和父进程的 ID PPID 启动进程的用户 ID UID 和所归属的组 GID 进程状态 状态分为运行 R 休眠 S 僵尸 Z 进程执行的优先级 进程所连接的终端名 进程资源占用 比如占用资源大小 内存 CPU 占用量 1 31 3 父进程和子进程 父进程和子进程 他们的关系是管理和被管理的关系 当父进程终止时 子进程也随之而终止 但子进程终止 父进程并不一定终止 比如 httpd 服务器运行时 我们可以杀掉其子进程 父进程并不会因为子 进程的终止而终止 在进程管理中 当我们发现占用资源过多 或无法控制的进程时 应该杀死它 以保护系统 的稳定安全运行 2 2 进程管理 进程管理 对于 Linux 进程的管理 是通过进程管理工具实现的 比如 ps kill pgrep 等工具 2 12 1 psps 监视进程工具 监视进程工具 ps 为我们提供了进程的一次性的查看 它所提供的查看结果并不动态连续的 如果想对进 程时间监控 应该用 top 工具 2 1 12 1 1 psps 的参数说明 的参数说明 ps 提供了很多的选项参数 常用的有以下几个 l 长格式输出 u 按用户名和启动时间的顺序来显示进程 j 用任务格式来显示进程 f 用树形格式来显示进程 a 显示所有用户的所有进程 包括其它用户 x 显示无控制终端的进程 r 显示运行中的进程 ww 避免详细参数被截断 我们常用的选项是组合是 aux 或 lax 还有参数 f 的应用 psps auxaux 或或 laxlax 输出的解释 输出的解释 USER进程的属主 PID进程的 ID PPID 父进程 CPU进程占用的 CPU 百分比 MEM占用内存的百分比 NI 进程的 NICE 值 数值大 表示较少占用 CPU 时间 VSZ 进程虚拟大小 RSS 驻留中页的数量 WCHAN TTY 终端 ID STAT 进程状态 D Uninterruptible sleep usually IO R 正在运行可中在队列中可过行的 S 处于休眠状态 T 停止或被追踪 W 进入内存交换 从内核 2 6 开始无效 X 死掉的进程 从来没见过 Z 僵尸进程 ps001 txt root localhost more ps001 txt 这里是把所有进程显示出来 并输出到 ps001 txt 文件 然后再通过 more 来分页查看 实例二 和实例二 和 grepgrep 结合 提取指定程序的进程 结合 提取指定程序的进程 root localhost ps aux grep httpd root 4187 0 0 1 3 24236 10272 Ss 11 55 0 00 usr sbin httpd apache 4189 0 0 0 6 24368 4940 S 11 55 0 00 usr sbin httpd apache 4190 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4191 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4192 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4193 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4194 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4195 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4196 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd root 4480 0 0 0 0 5160 708 pts 3 R 12 20 0 00 grep httpd 实例二 父进和子进程的关系友好判断的例子实例二 父进和子进程的关系友好判断的例子 root localhost ps auxf grep httpd root 4484 0 0 0 0 5160 704 pts 3 S 12 21 0 00 grep httpd root 4187 0 0 1 3 24236 10272 Ss 11 55 0 00 usr sbin httpd apache 4189 0 0 0 6 24368 4940 S 11 55 0 00 usr sbin httpd apache 4190 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4191 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4192 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4193 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4194 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4195 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd apache 4196 0 0 0 6 24368 4932 S 11 55 0 00 usr sbin httpd 这里用到了 f 参数 父与子关系一目了然 LinuxLinux 操作系统进程管理的分析与应用操作系统进程管理的分析与应用 3 3 发布时间 2006 05 19 07 12 来源 LinuxSir 作者 北南南北 2 22 2 pgreppgrep pgrep 是通过程序的名字来查询进程的工具 一般是用来判断程序是否正在运行 在服务器 的配置和管理中 这个工具常被应用 简单明了 用法 用法 ps 参数选项 程序名 常用参数常用参数 l 列出程序名和进程 ID o 进程起始的 ID n 进程终止的 ID 举例 举例 root localhost pgrep lo httpd 4557 httpd root localhost pgrep ln httpd 4566 httpd root localhost pgrep l httpd 4557 httpd 4560 httpd 4561 httpd 4562 httpd 4563 httpd 4564 httpd 4565 httpd 4566 httpd root localhost pgrep httpd 4557 4560 4561 4562 4563 4564 4565 4566 3 3 终止进程的工具 终止进程的工具 killkill killallkillall pkillpkill xkillxkill 终止一个进程或终止一个正在运行的程序 一般是通过 kill killall pkill xkill 等 进行 比如一个程序已经死掉 但又不能退出 这时就应该考虑应用这些工具 另外应用的场合就是在服务器管理中 在不涉及数据库服务器程序的父进程的停止运行 也 可以用这些工具来终止 为什么数据库服务器的父进程不能用这些工具杀死呢 原因很简单 这 些工具在强行终止数据库服务器时 会让数据库产生更多的文件碎片 当碎片达到一定程度的时 候 数据库就有崩溃的危险 比如 mysql 服务器最好是按其正常的程序关闭 而不是用 pkill mysqld 或 killall mysqld 这样危险的动作 当然对于占用资源过多的数据库子进程 我们应该 用 kill 来杀掉 LinuxLinux 操作系统进程管理的分析与应用操作系统进程管理的分析与应用 4 4 发布时间 2006 05 19 07 12 来源 LinuxSir 作者 北南南北 3 13 1 killkill kill 的应用是和 ps 或 pgrep 命令结合在一起使用的 killkill 的用法 的用法 kill 信号代码 进程 ID 注 注 信号代码可以省略 我们常用的信号代码是 9 表示强制终止 举例 举例 root localhost ps auxf grep httpd root 4939 0 0 0 0 5160 708 pts 3 S 13 10 0 00 grep httpd root 4830 0 1 1 3 24232 10272 Ss 13 02 0 00 usr sbin httpd apache 4833 0 0 0 6 24364 4932 S 13 02 0 00 usr sbin httpd apache 4834 0 0 0 6 24364 4928 S 13 02 0 00 usr sbin httpd apache 4835 0 0 0 6 24364 4928 S 13 02 0 00 usr sbin httpd apache 4836 0 0 0 6 24364 4928 S 13 02 0 00 usr sbin httpd apache 4837 0 0 0 6 24364 4928 S 13 02 0 00 usr sbin httpd apache 4838 0 0 0 6 24364 4928 S 13 02 0 00 usr sbin httpd apache 4839 0 0 0 6 24364 4928 S 13 02 0 00 usr sbin httpd apache 4840 0 0 0 6 24364 4928 S 13 02 0 00 usr sbin httpd 我们查看 httpd 服务器的进程 您也可以用 pgrep l httpd 来查看 我们看上面例子中的第二列 就是进程 PID 的列 其中 4830 是 httpd 服务器的父进程 从 4833 4840 的进程都是它 4830 的子进程 如果我们杀掉父进程 4830 的话 其下的子进程也会跟 着死掉 root localhost kill 4840 注 杀掉 4840 这个进程 root localhost ps auxf grep httpd 注 查看一下会有什么结果 是不是 httpd 服务器仍在运行 root localhost kill 4830 注 杀掉 httpd 的父进程 root localhost ps aux grep httpd 注 查看 httpd 的其它子进程是否存在 httpd 服务器是否仍在运行 对于僵尸进程 可以用对于僵尸进程 可以用 killkill 9 9 来强制终止退出 来强制终止退出 比如一个程序已经彻底死掉 如果 kill 不加信号强度是没有办法退出 最好的办法就是加 信号强度 9 后面要接杀父进程 比如 root localhost ps aux grep gaim beinan 5031 9 0 2 3 104996 17484 S 13 23 0 01 gaim root 5036 0 0 0 0 5160 724 pts 3 S 13 24 0 00 grep gaim 或 root localhost pgrep l gaim 5031 gaim root localhost kill 9 5031 LinuxLinux 操作系统进程管理的分析与应用操作系统进程管理的分析与应用 5 5 发布时间 2006 05 19 07 12 来源 LinuxSir 作者 北南南北 3 2 killall killall 通过程序的名字 直接杀死所有进程 咱们简单说一下就行了 用法 用法 killallkillall 正在运行的程序名正在运行的程序名 killall 也和 ps 或 pgrep 结合使用 比较方便 通过 ps 或 pgrep 来查看哪些程序在运行 举例 举例 root localhost beinan pgrep l gaim 2979 gaim root localhost beinan killall gaim 3 33 3 pkillpkill pkill 和 killall 应用方法差不多 也是直接杀死运行中的程序 如果您想杀掉单个进程 请用 kill 来杀掉 应用方法 应用方法 pkill 正在运行的程序名 举例 举例 root localhost beinan pgrep l gaim 2979 gaim root localhost beinan pkill gaim 3 43 4 xkillxkill xkill 是在桌面用的杀死图形界面的程序 比如当 firefox 出现崩溃不能退出时 点鼠标就 能杀死 firefox 当 xkill 运行时出来和个人脑骨的图标 哪个图形程序崩溃一点就 OK 了 如 果您想终止 xkill 就按右键取消 xkillxkill 调用方法 调用方法 root localhost xkill LinuxLinux 操作系统进程管理的分析与应用操作系统进程管理的分析与应用 6 6 发布时间 2006 05 19 07 12 来源 LinuxSir 作者 北南南北 4 4 toptop 监视系统任务的工具 监视系统任务的工具 和 ps 相比 top 是动态监视系统任务的工具 top 输出的结果是连续的 4 14 1 toptop 命令用法及参数 命令用法及参数 toptop 调用方法 调用方法 top 选择参数 参数 参数 b 以批量模式运行 但不能接受命令行输入 c 显示命令行 而不仅仅是命令名 d N 显示两次刷新时间的间隔 比如 d 5 表示两次刷新间隔为 5 秒 i 禁止显示空闲进程或僵尸进程 n NUM 显示更新次数 然后退出 比如 n 5 表示 top 更新 5 次数据就退出 p PID 仅监视指定进程的 ID PID 是一个数值 q 不经任何延时就刷新 s 安全模式运行 禁用一些效互指令 S 累积模式 输出每个进程的总的 CPU 时间 包括已死的子进程 交互式命令键位 交互式命令键位 space 立即更新 c 切换到命令名显示 或显示整个命令 包括参数 f F 增加显示字段 或删除显示字段 h 显示有关安全模式及累积模式的帮助信息 k 提示输入要杀死的进程 ID 目的是用来杀死该进程 默人信号为 15 i 禁止空闲进程和僵尸进程 l 切换到显法负载平均值和正常运行的时间等信息 m 切换到内存信息 并以内存占用大小排序 n 提示显示的进程数 比如输入 3 就在整屏上显示 3 个进程 o O 改变显示字段的顺序 r 把 renice 应用到一个进程 提示输入 PID 和 renice 的值 s 改变两次刷新时间间隔 以秒为单位 t 切换到显示进程和 CPU 状态的信息 A 按进程生命大小进行排序 最新进程显示在最前 M 按内存占用大小排序 由大到小 N 以进程 ID 大小排序 由大到小 P 按 CPU 占用情况排序 由大到小 S 切换到累积时间模式 T 按时间 累积时间对任务排序 W 把当前的配置写到 toprc 中 LinuxLinux 操作系统进程管理的分析与应用操作系统进程管理的分析与应用 7 7 发布时间 2006 05 19 07 12 来源 LinuxSir 作者 北南南北 4 2 top 应用举例 root localhost top 然后根据前面所说交互命令按个尝试一下就明白了 比如按 M 就按内存占用大小排序 这 个例子举不举都没有必要了 呵 当然您可以把 top 的输出传到一个文件中 root localhost top mytop txt 然后我们就可以查看 mytop 文件 以慢慢的分析系统进程状态 5 5 进程的优先级 进程的优先级 nicenice 和和 renicerenice 在 Linux 操作系统中 进程之间是竟争资源 比如 CPU 和内存的占用 关系 这个竟争优 劣是通过一个数值来实现的 也就是谦让度 高谦让度表示进程优化级别最低 负值或 0 表示对 高优点级 对其它进程不谦让 也就是拥有优先占用系统资源的权利 谦让度的值从 20 到 19 目前硬件技术发展极速 在大多情况下 不必设置进程的优先级 除非在进程失控而疯狂占 用资源的情况下 我们有可能来设置一下优先级 但我个人感觉没有太大的必要 在迫不得已的 情况下 我们可以杀掉失控进程 nice 可以在创建进程时 为进程指定谦让度的值 进程的优先级的值是父进程 SHELL 的优 先级的值与我们所指定谦让度的相加和 所以我们在用 nice 设置程序的优先级时 所指定数值 是一个增量 并不是优先级的绝对值 nicenice 的应用举例 的应用举例 root localhost nice n 5 gaim 注 运行 gaim 程序 并为它指定谦让度增量为 5 所以 nice 的最常用的应用就是 nice n 谦让度的增量值 程序 renice 是通过进程 ID PID 来改变谦让度 进而达到更改进程的优先级 renice 谦让度 PID renice 所设置的谦让度就是进程的绝对值 看下面的例子 root localhost ps lax grep gaim 4 0 4437 3419 10 5 120924 20492 S pts

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论