魏蓝

以梦为马

导航

进程管理工具

1.进程优先级

 

 

2.进程分类

1)操作系统分类:

  • 协作式多任务:早期 windows 系统使用,即一个任务得到了 CPU 时间,除非它自己放弃使用 CPU ,否则将完全霸占 CPU ,所以任务之间需要协作——使用一段时间的 CPU ,主动放弃使用
  • 抢占式多任务:Linux内核,CPU的总控制权在操作系统手中,操作系统会轮流询问每一个任务是 否需要使用 CPU ,需要使用的话就让它用,不过在一定时间后,操作系统会剥夺当前任务的 CPU 使用权,把它排在询问队列的最后,再去询问下一个任务

2)进程类型:

  • 守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
  • 前台进程:跟终端相关,通过终端启动的进程

3)按进程资源使用的分类:

  • CPU-Bound:CPU 密集型,非交互
  • IO-Bound:IO 密集型,交互

 

3.进程树pstree

1)pstree 可以用来显示进程的父子关系,以树形结构显示

2)格式:

pstree [OPTION] [PID | USER]

3)常用选项:

-p 显示PID
-T 不显示线程thread,默认显示线程
-u 显示用户切换
-H pid 高亮显示指定进程及其前辈进程

例:显示子进程及编号

[root@centos8 ~]# pstree -p  

 

 例:高亮显示进程前辈进程

[root@centos8 ~]# pstree -pH 3365

 

 

 4.ps命令进程信息

1)ps(process state),默认显示当前进程列表的信息信息

2)ps格式:

ps [OPTION]...

3)支持三种选项:

  • UNIX选项,如:-A -e
  • GNU选项,如:-help
  • BSD选项,如:a

例:显示所有前台进程信息

ps a

 

 例:显示所有进程信息(包括和终端无关的进程)

[root@centos8 ~]# ps ax

 

 例:显示所有进程信息并显示由谁运行,占用空间等信息

[root@centos8 ~]# ps aux

 4)ps输出属性

C:ps -ef 显示列C表示cpu利用率

VSZ:Virtual memory Size,虚拟内存集,线性内存

RSS:ReSident Size,常驻内存集

STAT:进程状态

  • R:running
  • S:interruptable sleeping 睡眠进程
  • D:uninterruptable sleeping 睡死进程
  • T:stopped
  • Z:zoombie 僵尸进程
  • +:前台进程
  • l:多线程进程
  • L:内存分页并带锁

5)范例:查看CPU利用率排序(默认从小到大,在%前加“-”反之)

[root@centos8 ~]# ps aux k %cpu
[root@centos8 ~]# ps aux k -%cpu

 

 6)面试题:找到未知进程的执行程序文件路径

首先找到它的进程编号:2714  

[root@centos8 ~]# ll /proc/2714

 

 在这个目录中有一个exe的软链接,就是这个程序的文件路径

[root@centos8 ~]# ll /proc/2714/exe

 

 7)查看优先级和CPU绑定关系

[root@centos8 ~]# ps axo pid,cmd,ni,pri,rtprio | grep migration
[root@centos8 ~]# ps axo pid,cmd,ni,pri,psr | grep dd

 

 8)实现进程和cpu的绑定(临时性)

[root@centos8 ~]# taskset --help

 

 

5.Prtstat查看进程详细信息

1)可以显示进程信息,来自于psmisc包

2)格式:

prtstat [OPTION] PID...

例:

[root@centos8 ~]# prtstat 1

 

 

6.搜索进程pgrep

1)命令格式:

pgrep [option] pattern

2)选项

-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名
-a: 显示完整格式的进程名
-P pid: 显示指定进程的子进程

 

7.搜索进程pidof

1)获取进程编号

2)命令格式

pidof [options] [pragram[...]]

例:

[root@centos8 ~]# pidof dd
7454
[root@centos8 ~]# ll /proc/`pidof dd`/exe
lrwxrwxrwx 1 root root 0 Mar 14 20:23 /proc/7454/exe -> /usr/bin/dd

3)常用选项:

-x 按脚本名称查找pid

4)范例:

[root@centos8 data]# bash bash.sh
[root@centos8 ~]# pidof /data/bash.sh -x
7574

 

 

 

 #脚本程序必须要有shebang机制,否则查不到

 

8.uptime和w

1)显示当前系统负载

2)内容

  • 当前时间
  • 系统已启动的时间
  • 当前上线人数
  • 系统平均负载(1、5、15分钟的平均负载,一般不会超过1,超过5时建议警报)

3)系统平均负载:指在特定时间间隔内运行队列中的平均进程数,通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。如果每个cpu内核的任务大于5,那么此主机的性能有严重问题。

如:Linux主机是1个双核cpu。当Load Average为6的时候,说明机器已经被充分利用

例:

[root@centos8 data]# uptime

 

 4)当然top的最上面一行显示的和uptime也是一样的。

top

 

 

  

  

记录于2022-3-14-21:05

posted on 2022-03-14 21:05  魏蓝  阅读(280)  评论(0编辑  收藏  举报