码迷,mamicode.com
首页 > 系统相关 > 详细

Linux进程及作业管理

时间:2015-12-28 06:34:58      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:linu进程管理 htop dstat命令

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含义
Rrunning
Sinterruptable sleeping
Duninterruptable sleeping
Tstoped
Zzombie
+前台进程
l多线程进程
n低优先级进程
<高优先级进程
ssession 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命令:进程过滤专用工具


pgrep [options] PATTERN
选项
-u uid起作用的用户
-U uid显示指定用户的进程
-t  TERMINAL与指定的终端相关的进程
-l显示进程名
-a显示完整格式的进程名
-p  pid
显示此进程的子进程
pkill命令选项与pgrep选项相同,表示杀死匹配到的进程
pidof命令:根据进程名取其pid
pidof 后跟进程名

技术分享



top命令:动态显示系统进程信息。
键入top命令,会出现动态显示的一个进程信息界面
技术分享


界面首部显示信息:

  • 第一行:top-显示当前时间,  up 显示运行时长 , user表示登录到当前系统上的用户数 ,load average表示过去1分钟,5分钟,15分钟内的平均负载(等待运行的进程队列长度)
  • 第二行:Tasks:进程任务
  • 第三行:%Cpu(s):us表示运行在用户空间的进程所占用的cpu百分比,sy表示运行在系统内核空间的进程所占用的百分比,ni表示用于nice值调整所占用的cpu百分比,id表示空闲cpu百分比,wa等待io完成所占用的cpu百分比,hi表示硬中断所占用的cpu百分比,si表示软中断所占用的cpu百分比,st表示被虚拟化程序偷走的cpu百分比。
  • 第四行:物理分区内存空间占用情况;
  • 第五行:交换分区内存空间占用情况;

技术分享


(注:uptime命令显示top命令显示的第一行的信息:)

技术分享


内建交互式命令
 首部信息显示选项
可键入l命令显示第一行uptime信息;
可键入t命令显示tasks和cpu的信息;
可键入m命令显示第四行和第五行的内存信息;
可键入1命令显示所有cpu的信息;

技术分享

进程的状态信息默认以cpu占用比进行排序

技术分享

键入M表示以内存占用百分比进行排序

技术分享

键入T表示以运行时间进行排序

技术分享

键入P表示以cpu占用百分比进行排序

技术分享

 键入s表示修改刷新时间间隔,输入刷新隔时间,以秒为单位

技术分享

键入k后面跟上进程号表示杀死该进程

技术分享


键入q表示退出命令;
top命令选项:
    -d#:设定刷新间隔

技术分享


    -b:以批次方式显示

    -n#:显示多少批次(类似于ps命令)

技术分享


        
htop命令:

htop是top的升级版。

使用方法大同小异;

技术分享


默认显示所有cpu的占用信息,并且支持鼠标操作。
相比htop改进之处:界面更优化,操作更简单,支持鼠标操作。
内部交互式命令
可键入t或F5命令以层级关系显示进程关系

技术分享

 可用上下按键或鼠标选定进程,键入l命令显示该进程所打开的所有文件

技术分享

选定进程后键入s命令,可以显示该进程的所有系统调用,而且能追踪新的系统调用

技术分享 可键入a将选定的进程绑定至某指定的CPU核心

技术分享

可键入F2键设置显示需要的信息和显示格式

技术分享

htop命令选项:
        -d#:指定刷新间隔
        -u username :仅显示指定用户的进程
        -s COLUME:以指定字段进行排序


vmstat命令:报告虚拟内存的统计数据

vmstat [options][delay[count]]
delay:设置刷新时间

count:设置显示次数

技术分享

  • procs表示的含义:r:等待运行的进程个数,cpu上等待运行的任务的队列长度
                                       b:处于不可终端睡态的进程个数,被阻塞的任务队列的长度
  • memory:swpd:交换内存使用总量
                            free:空闲的物理内存总量
                         buffer:用于buffer(缓冲)的内存总量
                        cache:用于cache(缓存)的内存总量
  • swap:si:数据进入swap中的数据速率(kb/s),换进
                    so:数据离开swap的数据速率,换出
  • io: bi:从块设备读入数据到内存的速度(kb/s
               bo:保存数据至块设备的速率
  • system:in:interrupts,中断速率,平均每秒
                       cs:context switch,上下文切换的速率
  • cpu:us:用户空间所占用的cpu百分比
                 sy:系统空间所占用的cpu百分比
                   id:空闲cpu
                  wa:等待IO完成的所占用的百分比
                  st:被虚拟化基础所偷走的cpu时间
    vmstat选项:

              -s:显示内存统计数据

技术分享


pmap命令:指定显示进程内存映射表

pmap [options]pid...

技术分享


 另一种查看方式: cat  /proc/PID/maps 

技术分享


dstat命令

dstat [-afv][options..][delay[count]]

技术分享

默认会刷新时间间隔为2秒,并会一直动态显示下去

可以设置delay时间间隔,和count次数

技术分享

选项
-c显示指定cpu相关信息,也可指定特定的cpu,-C# #,
技术分享
-d显示磁盘的相关信息,也可指定特定磁盘,-D#,#
技术分享
-g显示page相关的速率数据
技术分享
-mMemory的相关统计数据
技术分享
-nInterface的相关统计数据
技术分享
-p显示Process相关统计数据
技术分享
-r显示lo请求的相关统计数据
技术分享
-i显示中断的信息
技术分享

--tcp显示tcp协议的连接
技术分享
--udp显示udp协议的连接
技术分享
--raw显示raw连接
技术分享
--socket显示socket连接
技术分享
--top-cpu显示最占用cpu的进程
技术分享
--top-io显示最占用io的进程
技术分享
--top-mem显示最占用内存的进程
技术分享




kill命令:用于向进程发送信号,以实现对进程的管理

只有管理员有权限向进程发送信号
kill -l :显示当前系统的可用信号

技术分享

也可在-l后跟上信号名称显示指定信号
信号的表示方法:
  1. 信号的数字标识
  2. 信号的完整名称
  3. 信号的简写名称
向进程发送信号:
         kill [-s signal | -signal]pid...
      常用信号:
  •        1)SIGHUP:无需关闭进程
  •        2)SIGINT:中止正在运行的进程,相当于Ctrl+c
  •        9)SIGKILL:杀死运行中的进程,强制杀死
  •      15)SIGTERM:终止运行
  •      18)SIGCONT:=fg:进行停止中的进程
  •      19)SIGSTOP:=Ctrl+z:停止进程并送往后台
killall[-SIGNAL]program


Linux系统作业控制

job:
    前台作业(foregroud):通过终端启动,且启动后会一直占据终端
    后台作业(backgroud):可以通过终端启动,也可以不通过终端启动,但启动后即转入后台运行(释放终端)
  
如何让让作业运行于后台:
            (1)运行中的作业:Ctrl+z送往后台后,作业会转为停止态。
            (2)尚未启动的作业:#COMMAND&,此类作业虽被送完后台也依然与终端相关。
                     ( 此类作业虽被送完后台也依然与终端相关,使用#nohup COMMAND &命令可以把送往后台的作业剥离与终端的关系)

 技术分享

 查看所有作业:#jobs

技术分享

可实现作业控制的常用命令:
# fg  [[%]JOB_NUM]:把指定的作业调回前台;
# bg  [[%]JOB_NUM]:让送往后台的作业在后台继续运行;
# kill  %JOB_NUM:终止指定的作业;

技术分享作业号后的+号表示优先级,如果使用控制作业命令后不加作业号,默认执行有加号的作业,之后执行有减号的作业最后执行没有符号的作业。



调整进程优先级:
可通过nice值调整的优先级范围:100-139,分别对应nice值:-20,19
进程启动时:其nice值默认为0,优先级是120
nice命令:以指定的nice值启动并运行命令
        nice[options][command [ARGUEMENTS]..]
               选项:-n NICE
   注意:只有管理员可以调低nice值
    
renice命令:调整正在运行进程的优先级
        renice[-n]NICE PID....


总结


进程管理是Linux系统运维中机器重要的一部分,所以熟练使用各种工具查看噶管理进程在生产环环境中起到了重要作用,也是不可或缺的一环,在进程管理工具中top使用时间比较长,是前期Linux系统中最广泛的一款进程查看工具,如今而言,htop逐渐取代了他的地位,相比较而言,htop拥有更好看的界面和更快捷的操作,更是支持用鼠标操作,在未来的操作系统中将会占据主导地位,dstat工具是一个可以查看各种进程状态的工具,也是非常强大,甚至可以查看网络状态。

Linux进程及作业管理

标签:linu进程管理 htop dstat命令

原文地址:http://tz666.blog.51cto.com/10990100/1728907

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!