Linux系统日常进程管理与监控

0    33    1

Tags:

👉 本文共约5185个字,系统预计阅读时间或需20分钟。

1.进程是什么

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

在LINUX系统中进程IDPID表示,范围从0-32768,其中PID=1的进程为init初始化进程。

2.进程的分类

进程可分为系统进程和用户进程。

1)系统进程

可以执行内存资源分配和进程切换等管理工作;而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。

2)用户进程

通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。

用户进程分类3类:

  • 交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。
  • 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。
  • 守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。

3.进程的查看

3.1使用ps命令查看进程(瞬间)

1)查看系统中所有进程,使用BSD操作系统格式

2)查看系统中所有进程,使用LINUX标准命令格式

3)查看系统中所有进程

4)详细显示每个进程信息

5)ps选项的解释

a:显示一个终端的所有进程,除了会话引线 u:显示进程的归属用户及内存的使用情况 x:显示没有控制终端的进程 -l:长格式显示。显示更加详细的信息 -e:显示所有进程,和-A作用一致

-f:详细显示每个进程信息,经常和e组合使用,如ps -ef

6)ps命令输出各字段的含义

上面字段含义如下:

USER:该进程是由哪个用户产生的;PID:进程的ID号;%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;VSZ:该进程占用虚拟内存的大小,单位KB;RSS:该进程占用实际物理内存的大小,单位KB;TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。STAT:进程状态。常见的状态有:R:运行S:睡眠T:停止s:包含子进程+:位于后台START:该进程的启动时间;TIME:该进程占用CPU的运算时间,它不是系统时间;COMMAND:产生此进程的命令名。

3.2使用pstree命令查看进程树

它有两个选项:

-p:显示进程的PID-u:显示进程的所属用户

如下,加了参数后输出形式:

3.3使用top命令查看系统的健康状态(实时)

top命令显示的是实时的系统信息,其常用选项如下:

-d 秒数:指定top命令每隔几秒更新,默认是3秒-b:使用批处理模式输出,一般和“-n”选项合用。-n 次数:指定top命令执行的次数,一般和“-b”选项合用。

top命令的交互式模式当中可以执行的命令:

?或h:显示交互模式的帮助P:以CPU使用率排序,默认就是此项M:以内存的使用率排序N:以PID排序q:退出top

top命令使用及含义解释:

1)top命令输出第一行的含义:

内容说明
20:02:15系统当前时间
up 17 days, 8:45系统运行时间,本机已运行17天8小时45分钟
1 user当前登录了一个用户
load average: 0.00, 0.01, 0.05系统在之前1分钟、5分钟、15分钟的平均负载。 这个值和CPU核数有关,大于CPU核数,说明系统已超出负载。

2)top命令输出第二行的含义:

Tasks: 188 total, 2 running, 186 sleeping, 0 stopped, 0 zombie

表示当前总进程为188个,其中2个在运行,186个进程处理睡眠状态。

3)top命令输出第三行的含义:

内容说明
%Cpu(s): 0.0 us用户模式占的CPU百分比
7.1 sy系统模式占的CPU百分比
0.0 ni改变过优先级的用户进程占用的CPU百分比
92.9 id空闲CPU的CPU百分比,目前表示很空闲
0.0 waCPU等待硬盘写入时间,判断硬盘I/O
0.0 hiCPU处理硬中断占用的百分比
0.0 siCPU处理软中断占用的百分比
0.0 st虚拟时间百分比

3.4使用lsof命令查看进程打开了哪些文件

lsof命令常用参数如下:

-p pid : 输出指定进程打开的文件;

-l : 输出中使用ID代替用户名;

-u userName : 输出指定用户打开的文件;

-c string : 输出COMMAND列中包含 string 的项;

-d fd : 输出包含指定描述符的项;

fileName : 输出打开文件fileName的所有项;

1)不加任何参数输出:

上面各字段的含义如下表:

字段名称功能含义
COMMAND命令名称
PID进程ID
TID线程ID,如果为空代表列出的是进程
USER用户ID号或登录名
FD文件描述符
TYPE与文件关联结点的类型
DEVICE设备号
SIZE/OFF文件大小/偏移量,以字节为单位
NODE文件结点
NAME文件挂载点和文件所在的系统

2)列出1号进程打开的文件

3)lsof常用组合

  • 显示进程打开的文件数

  • 统计sshd进程打开的文件数

  • 查看80端口22端口对应的用户进程

3.5使用pgrep命令查看进程PID信息

这个命令只输出进程PID号,如下:

可以用前面的ps命令进行验证一下:

可以看出两个命令的结果是一致的。

4.进程的终止

进程的终端通常用kill和killall命令。这里有一个信号类型的概念,可以用kill -l命令查看:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
Linux系统日常进程管理与监控后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部