Linux上的进程管理

一、何为进程

通常来讲,进程时运行起来的程序,为什么这样说呢,程序文件是存放在磁盘上的,一旦内核将其加载至内存中运行起来,它就成为了一个进程,而且系统还会给予进程一个ID号,成为PID,用来标识进程。同时根据启动这个进程的使用者的相关属性信息,给予这个PID一组有效的权限配置。

二、如何产生一个进程

运行一个程序或者命令就可以触发一个事件而取得一个PID,因为系统只识别二进制程序文件,所以我们可以通过执行系统上的二进制程序文件来运行程序,进而产生进程

三、如何管理进程

为方便管理,Linux为我们提供了许多进程管理的命令,下面让我来简单介绍一下

▲ps命令   查看进程信息

ps [option]

选项有三种风格:

This version of ps accepts several kinds of options:

1   UNIX options, which may be grouped and must be preceded by a dash.

2   BSD options, which may be grouped and must not be used with a dash.

3   GNU long options, which are preceded by two dashes.

选项:

a:所有与终端相关的进程

x:所有与终端无关的进程;

u:以用户为中心组织进程状态信息显示;

USER:进程的属主

PID:进程的PID号,用来表示此进程

CPU%:占CPU的百分比

MEM%:占内存的百分比

VSZ:虚拟内存集

RSS:常驻内存集

TTY:与其相关的终端

STAT:进程的状态

R:running
        S: interruptablesleeping
        D: uninterruptable sleeping
        T: stopped
        Z: zombie
        +: 前台进程
        l: 多线程进程
        N:低优先级进程
        <: 高优先级进程
        s: session leader,会话(子进程)发起者

TIME:使用掉CPU的时间

COMMAND:与此进程相关的命令

常用组合:

●-ef

-e: 显示所有进程
        -f: 显示完整格式程序信息

-●eFH

-F: 显示更完整格式的进程信息
        -H: 以进程层级格式显示进程相关信息

● 自定义

-eo   pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
        axo   stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

▲top命令  动态的显示进程信息

界面如下图 ,红色标识的是有关CPU参数,下面的PID,USER那一栏参数基本上和ps命令一样       top中有许多的内置命令:

●排序:
          P:以占据的CPU百分比,%CPU
          M:占据内存百分比,%MEM
          T:累积占据CPU时长,TIME+

●首部信息显示:
          uptime信息:l命令
          tasks及cpu信息:t命令
          cpu分别显示:1 (数字)
          memory信息:m命令

●退出命令:q
        ●修改刷新时间间隔:s
        ●终止指定进程:k
        ●保存文件:W

▲htop

htop与top很类似,界面比hop做的漂亮,它通过文字图形化地显示每一个进程的CPU和内存使用量、swap使用量。界面如下图所示


    ▲uptime 显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)

●系统平均负载:
        指在特定时间间隔内运行队列中的平均进程数。值越小服务器负载越小
   ●如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
   ●如果linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。

    ▲vmstat命令:虚拟内存信

    ●procs:
      r:等待运行的进程的个数,和核心数有关
      b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

●memory:
      swpd: 交换内存的使用总量
      free:空闲物理内存总量
      buffer:用于buffer的内存总量
      cache:用于cache的内存总量

●swap:
      si:从磁盘交换进内存的数据速率(kb/s)
      so:从内存交换至磁盘的数据速率(kb/s)

●io:
      bi:从块设备读入数据到系统的速率(kb/s)
      bo: 保存数据至块设备的速率

●system:
      in: interrupts, 中断速率,包括时钟
      cs: context switch, 进程切换速率

●cpu:
        us:Timespent running non-kernel code
        sy: Time spent running kernel code
        id: Time spent idle. Linux 2.5.41前,包括IO-wait time.
        wa: Time spent waiting for IO. 2.5.41前,包括in idle.
        st: Time stolen from a virtual machine. 2.6.11前, unknown

▲glances  在EPEL源里下载安装

●常用选项:
      -b: 以Byte为单位显示网卡数据速率
      -d: 关闭磁盘I/O模块
      -f /path/to/somefile: 设定输入文件位置
      -o {HTML|CSV}:输出格式
      -m: 禁用mount模块
      -n: 禁用网络模块
      -t #: 延迟时间间隔
      -1:每个CPU的相关数据单独显示

●此外,glances还可以给予C/S模式来监控系统信息

服务模式:
         glances -s -B IPADDR
         IPADDR: 指明监听的本机哪个地址
       客户端模式:
         glances -c IPADDR
         IPADDR:要连入的服务器端地址

▲kill命令:向进程发送控制信号,以实现对进程管理

常用信号:man 7 signal
      1) SIGHUP: 无须关闭进程而让其重读配置文件
      2) SIGINT: 中止正在运行的进程;相当于Ctrl+c
      9) SIGKILL: 杀死正在运行的进程
      15) SIGTERM:终止正在运行的进程
      18) SIGCONT:继续运行
      19) SIGSTOP:后台休眠

按PID:kill [-SIGNAL] pid…
    按名称:killall[-SIGNAL] comm…
    按模式:pkill[options] pattern
      -SIGNAL
      -u uid: effective user,生效者
      -U uid: real user,真正发起运行命令者
      -t terminal: 与指定终端相关的进程
      -l: 显示进程名
      -a: 显示完整格式的进程名
      -P pid: 显示父进程为此处指定的进程的进程列表

●下图举例通过ps命令查找进程号,然后杀死这个进程

时间: 2024-08-27 19:30:58

Linux上的进程管理的相关文章

Linux入门之进程管理(4)之进程与文件

Linux入门之进程管理(4)之进程与文件 前面使用进程相关命令管理工具都是根据进程编号或者进程名称及其其它属性信息来查看和处理相关进程的,但是在某些情况下,想要查看某个文件或者某个设备被哪些进程所使用,使用ps.pgrep等命令查询的是不够准确的,而且有些时候并不是简单的去打开某个文本文件一样,这样还可以进行搜索过滤出来.而在linux系统中,除了常见的配置文件.日志文件等文本文件,几乎任何对象都会被内核映射去该有的文件,比如磁盘设备.挂载点等.当要知道那些用户通过哪些进程来在访问或者使用此文

linux下的进程管理(进程的基本了解及查看pstree,ps,pgrep命令)

Linux下的进程管理 1.什么是进程?程序是静态的文件进程是运行中的程序的一个副本进程存在生命周期(准备期,运行期,终止期)2.进程状态 状态 定义 R(TASK_RUNNING) . 可执行状态(RUNNING,READY)running:正在被处理 ready: 在排队, cpu处理进程个数有限 S(TASK_INTERRUPTIBLE) 可唤醒状态 :在cpu上使用的时间超时,此时被打入休眠状态,随着程序的调用会被唤醒 D(TASK_UNINTERRUPTIBLE) 不可唤醒状态 T(T

linux应用开发-进程管理

linux应用开发-进程管理 一 进程 一个组成部分是操作系统用来管理进程的内核对象,内核对象是系统用来存放进程的统计信息的地方 1 每个进程都有一个父进程 2 子进程终止,父进程会得到通知并能去的进程的退出状态 3 命名空间 类似有C++的namespace 4 进程组 每个进程都有一个进程组,都有一个进程组号=组长PID 进程组组长-groupleader 5 会话期session是一个或多个进程组的集合 setsid可以创建会话期 6 相关换算 2^10 = 1K 2^20 = 1M 2^

Linux学习之进程管理(十九)

Linux学习之进程管理 进程查看 查看系统中所有进程,使用BSD操作系统的格式 语法:ps aux 选项: a:显示所有前台进程 x:显示所有后台进程 u:显示这个进程是由哪个用户产生的 语法:ps -le 查看系统中所有进程,使用Linux标准命令格式 选项 l:显示详细信息 e:显示所有进程 USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越消耗资源. %MEM:该进程占用物理内存的百分比,占用越高,进程越消耗资源. VSZ:

深入Linux内核架构——进程管理和调度(上)

如果系统只有一个处理器,那么给定时刻只有一个程序可以运行.在多处理器系统中,真正并行运行的进程数目取决于物理CPU的数目.内核和处理器建立了多任务的错觉,是通过以很短的间隔在系统运行的应用程序之间不停切换做到的.由此,以下两个问题必须由内核解决:除非明确要求,否则应用程序不能彼此干扰:CPU时间必须在各种应用程序之间尽可能公平共享(一些程序可能比其他程序更重要).本篇博文主要涉及内核共享CPU时间的方法以及如何在进程之间切换(内核为各进程分配时间,保证切换之后从上次撤销其资源时执行环境完全相同)

linux基础:进程管理

1.进程和程序(process and program) 首先我们对进程作一明确定义:所谓进程是由正文段(text).用户数据段(user segment)以及系统数据段(system segment)共同组成的一个执行环境. 程序只是一个普通文件,是一个机器代码指令和数据的集合,这些指令和数据存储在磁盘上的一个可执行映象(executable image)中,所以,程序是一个静态的实体.linux是一个多任务操作系统,也就是说,可以有多个程序同时装入内存并运行,操作系统为每个程序建立一个运行环

【linux】 linux中的进程管理相关的一些内容

_ linux进程管理 ■ top top命令用于动态地查看系统的进程和其他一些资源的信息.开启top的时候可以加上-t <sec>来设置top更新的频率高低.进入top界面之后,可以输入一些命令比如P表示以cpu资源占用率对进程排序,M表示以内存的使用率排序进程,N表示以PID的顺序排序等等.想要知道更多命令可键入?来查看 top的界面说明: 第一行:<当前时间> <开机到目前的总时间> <登录用户人数> <系统最近一分钟.五分钟.十五分钟的平均负载

Linux学习之进程管理

|-进程管理     进程常用命令        |- w查看当前系统信息        |- ps进程查看命令        |- kill终止进程        |- 一个存放内存中的特殊目录/proc        |- 进程的优先级        |- 进程的挂起与恢复        |- 通过top命令查看进程        计划任务        |- 计划任务的重要性        |- 一次性计划at和batch        |- 周期性计划crontab    进程管理的概念

linux系统管理之进程管理

进程管理的操作命令 为了管理这些linux进程,用户应该能够: 查看所有运行中的进程 查看进程消耗资源 定位个别进程并且对其执行指定操作 改变进程的优先级 杀死指定进程 限制进程可用的系统资源等 linux提供了许多命令来让用户来高效掌控上述的操作: 1.pstree - 显示进程的树状图来展示进程间关系 linux中,每一个进程都是由其父进程创建的.此命令以可视化方式显示进程,通过显示进程的树状   图来展示进程间关系.如果指定了pid了,那么树的根是该pid,不然将会是init(pid: 1