• linux进程管理命令


    1 进程的概念,进程与程序的区别

    >进程的概念

    • 进程是程序的一次执行
    • 进程是一个程序及其数据在处理机上顺序执行所发生的活动
    • 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

    >程序的概念

    程序是为了完成某个特定的任务,而用某种语言编写的一组指令的集合

    >进程和程序的区别

    • 程序是一组有序的指令集合,而进程是程序的一次动态执行的过程,是操作系统为了管理控制程序的运行而加设的一个概念和实体
    • 程序是静态的,而进程是动态的
    • 程序只包含代码,而进程不但包括要运行的代码,还包含代码要处理的数据、运行的过程中的状态参数等

    2 ps 命令

    ps 命令能够给出当前系统中进程的快照,它能捕获系统在某一时间的进程状态。因此

    ps 命令显示的是瞬间进程状态,并不动态连续。

    >使用方法

    1. ps 命令的基本格式:ps [选项]
    2. 常用选项如下: (unix风格)
    3. • -A:显示所有进程(同-e)
    4. • -a:显示当前终端的所有进程
    5. • -u:显示进程的用户信息
    6. • -o:以用户自定义形式显示进程信息
    7. • -f:显示程序间的关系
    8. • -x:显示所有进程,不以终端机来区分
    • ps -A

    • ps -a

    • ps -u

    • ps -o(注意这个需要在后面写上自定义的形式)

    • ps -f

    • ps -x

    >ps 命令输出字段解析

    常见字段的基本含义如下:

    1. • USER:进程所有者的用户名
    2. • PID:进程 ID(Process ID)
    3. START:进程激活时间
    4. • %CPU:进程的 cpu 占用率
    5. • %MEM:进程使用内存的百分比•
    6. • VSZ:进程使用的虚拟内存大小,以 K 为单位
    7. • RSS:驻留空间的大小。显示当前常驻内存的程序的 K 字节数。
    8. • TTY:与进程关联的终端(tty)
    9. • STAT:进程状态,包括以下的状态。
    10. D 不可中断
    11. R 正在运行,或在队列中的进程
    12. S 处于休眠状态
    13. T 停止或被追踪
    14. Z 僵尸进程
    15. X 死掉的进程
    16. < 高优先级
    17. N 低优先级
    18. I 多线程的
    19. s 进程的领导者(在它之下包含子进程)
    20. + 运行在前台
    21. L 进程有些页被锁进内存
    22. TIME:进程使用的总 CPU 时间
    23. • COMMAND:被执行的命令行
    24. • NI:进程的优先级值,较小的数字意味着占用较少的 CPU 时间
    25. • PRI:进程优先级。
    26. • PPID: 父进程 ID
    27. • WCHAN:进程等待的内核事件名

    >常用组合

    1. ps -ef 显示所有的进程和命令行
    2. ps -ef | grep http 查看”http”相关进程
    3. ps -aux 列出目前所有的正在内存当中的程序
    4. ps -aux | more 可以用 | 管道和 more 连接起来分页查看
    5. ps -aux > ps001.txt 把所有进程显示出来,并输出到 ps001.txt 文件
    6. ps -u root 显示指定用户信息
    7. ps -axjf 类似程序树的程序
    显示
    • ps -ef

    • ps -ef | grep http

    • ps -aux

    • ps -aux | more

    • ps -aux > ps001.txt

    • ps -u root

    • ps -axjf

    3 top 命令

            在 Linux 操作系统中,top 是使用最频繁,也是信息比较全的一个命令。它对于所有正在运行的进行系统负荷提供不断更新的概览信息,包括系统负载、CPU 利用分布情况、内存使用、每个进程的资源占用情况等信息。

    >使用方法

    top 命令的基本格式:top [选项]

    选项如下:

    1. -d 秒数: 指定 top 命令每隔几秒更新。默认是 3 秒;
    2. -b: 使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
    3. 例如 top -n 2 -b > top.log,将更新显示二次的结果输入到 top.log 档案里。
    4. -n 次数: 指定 top 命令执行的次数,然后退出。可以和"-b"选项合用;
    5. -p 进程 PID: 仅监视指定 ID 的进程;
    6. -s: 使 top 命令在安全模式中运行,避免在交互模式中出现错误;
    7. -u 用户名: 只监听某个用户的进程;
    8. 举例:top -u root,查看 root 用户创建的所有进程。
    • top -d

    • top -b

    • top -n

    • top -p

    • top -s

    • top -u

    举例 2:

    1. top 每隔 3 秒显式所有进程的资源占用情况
    2. top -d 1 每隔 1 秒显式所有进程的资源占用情况top -c
    3. top -c 每隔 3 秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
    4. top -p 24 -p 25 每隔 3 秒显示 pid 是 28820 和 pid 是 38830 的两个进程的资源占用情况。
    5. top -d 2 -c -p 24 每隔 2 秒显示 pid 是 69358 的进程的资源使用情况,并显式该进程启动的命令行参数。
    6. top 命令的显示窗口中,可以使用如下按键,进行交互操作:
    7. • ? 或 h:显示交互模式的帮助;
    8. • P:按照 CPU 的使用率排序,默认就是此选项;
    9. • M:按照内存的使用率排序;
    10. • N:按照 PID 排序;
    11. • T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
    12. • k:按照 PID 给予某个进程一个信号。一般用于中止某个进程;
    13. • r:按照 PID 给某个进程重设优先级(Nice)值;
    14. • q:退出 top 命令;
    • top

    • top -d 1

    • top -c

    • top -p 24 -p 25

    • top -d 2 -c -p 24

    >top 命令输出结果解析

    top 命令输出很多参数,真正的机器负载情况要综合其他参数一起看。top 输出结果分为两部分:第一部分是为系统整体的统计信息;第二部分是第 8 行开始的进程信息

    (1)系统整体信息。

    第一行:

    1. top:当前时间
    2. up:机器运行了多长时间
    3. • users:当前登录用户数
    4. • load average:系统负载,即任务队列的平均长度。三个数值分别为 1 分钟、5 分钟、15 分钟前到现在的平均值。
    5. 注意:一个 CPU 在一个时间片里面只能运行一个进程,CPU 核数的多少直接影响到这
    6. 台机器同时间能运行的进程数。一般来说 Load Average 的数值不超过这台机器的总核
    7. 数,就基本没有问题。

    第二行:

    1. • Tasks:当前有多少进程
    2. running:正在运行的进程数,值越多,机器压力就越大。
    3. • sleeping:正在休眠的进程数
    4. • stopped:停止的进程数
    5. • zombie:僵尸进程数

    第三行:

    1. • us:用户空间占 CPU 的百分比(像 shell 程序、各种语言的编译器、各种应用、
    2. web 服务器和各种桌面应用都算是运行在用户地址空间的进程,一般绝大多数的
    3. CPU 时间都是运行在用户态)
    4. • sy: 内核空间占 CPU 的百分比(所有进程要使用的系统资源都是由 Linux 内核处
    5. 理的,对于操作系统的设计来说,消耗在内核态的时间应该是越少越好)
    6. • ni:用户进程空间改变过优先级(ni 是 nice 的缩写,可以通过 nice 值调整进程用
    7. 户态的优先级,这里显示的 ni 表示调整过 nice 值的进程消耗掉的 CPU 时间,如
    8. 果系统中没有进程被调整过 nice 值,那么 ni 就显示为 0)
    9. id:空闲 CPU 占用率
    10. • wa:等待输入输出的 CPU 时间百分比
    11. • hi:硬中断占用百分比(硬中断是硬盘、网卡等硬件设备发送给 CPU 的中断消息,
    12. 当 CPU 收到中断消息后需要进行适当的处理(消耗 CPU 时间)
    13. • si:软中断占用百分比(软中断是由程序发出的中断,最终也会执行相应的处理程序,消耗 CPU 时间)•
    14. • st:steal time

    第四行:

    1. • total:物理内存总量
    2. free:空闲内存量
    3. • used:使用的内存量
    4. • buffer/cache:用作内核缓存的内存量

    第五行:

    1. • total:交换区内存总量
    2. free:空闲交换区总量
    3. • used:使用的交换区总量
    4. • buffer/cache:缓冲的交换区总量
    5. 注意:所有程序的运行都是在内存中进行的,所以内存的性能对与机器来说非常重要。
    6. 当内存的 free 变少的时候,需要看交换区中的 used 信息。Swap 分区是由硬盘提供的交换
    7. 区,当物理内存不够用的时候,操作系统才会把暂时不用的数据放到 Swap 中。所以当这个
    8. 数值变高时,说明内存是真的不够用了。

    (2)进程信息。

    1. • PID:进程 id
    2. • USER:进程所有者的用户名
    3. • PR:优先级
    4. • NI:nice 值,负值表示高优先级,正值表示低优先级
    5. • VIRT:进程使用的虚拟内存总量,单位 kb。VIRT=SWAP+RES
    6. • RES:进程使用的、未被换出的物理内存大小,单位 kb。RES=CODE+DATA
    7. • SHR:共享内存大小,单位 kb
    8. • S:进程状态。其中包括 D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程等。
    9. • %CPU:上次更新到现在的 CPU 时间占用百分比
    10. • %MEM:进程使用的物理内存百分比
    11. TIME+:进程使用的 CPU 时间总计,单位 1/100
    12. • COMMAND:命令名/命令行
    13. 还有一些参数,可以通过按 f 键可以编辑显示内容。

    4 kill 命令

    用来删除执行中的程序或工作。kill 可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9)信息尝试强制删除程序。

    >使用方法

    kill 命令的基本格式:kill [选项] [进程 id]

    选项如下:

    1. • -a:当处理当前进程时,不限制命令名和进程号的对应关系;
    2. • -l:<信息编号>:若不加<信息编号>选项,则-l 参数会列出全部的信息名称;
    3. • -p:指定 kill 命令只打印相关进程的进程号,而不发送任何信号;
    4. • -s<信息名称或编号>:指定要送出的信息;
    5. • -u:指定用户。

    kill 掌握最常规用法即可,常与 ps 命令结合在一起使用

    对于僵尸进程,可以用 kill -9 来强制终止退出。

  • 相关阅读:
    聊聊我认为的 “Kotlinic“
    利用CoreDNS实现DNS负载均衡
    未来数字化转型发展的前景如何,企业又该怎么实现?
    vue-cli创建项目、vue项目目录结(运行vue项目)、ES6导入导出语法、vue项目编写规范
    什么是JUC
    【spring】springProperty 使用
    ArcGIS:如何简单地制作一幅专题地图?
    yunion.cn k8s集群高可用部署
    《算法笔记》树与二叉树专题
    如何通过 kubectl 进入 node shell
  • 原文地址:https://blog.csdn.net/princekin_even/article/details/127444044