系统管理体系之进程管理

news/2025/1/4 14:27:50/文章来源:https://www.cnblogs.com/liaofy/p/18646231

系统管理体系之进程管理

1. 进程

名字 含义
程序 安装包,程序代码,app,存放在磁盘上面.
进程⭐️ 运行起来的程序,命令,服务(远程连接服务,网络服务)都可以称作进程。 运行在内存中。
守护进程 守护进程, 一直运行的进程. 也可以叫做服务.

2. 进程分类(异常进程)

2.1 僵尸进程⭐️⭐️⭐️⭐️⭐

​ 僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。

僵尸进程:由于各种原因导致某个进程挂掉了,但是进程本身仍然存在,还占用着系统资源,这种异常进程僵尸进程。

  • 查找:未来通过ps aux过滤 Z状态即可找出僵尸进程或top命令查看.
  • 解决:
    • 方案01:找出僵尸进程上级进程,结束进程即可
    • 方案02:如果上级进程是主进程(pid为1进程),则需要重启Linux系统

image

  温馨提示: pstree属于psmisc软件包,yum安装psmisc即可.

2.2 孤儿进程

孤儿进程指的是在其父进程执行完成或被终止后仍继续运行的一类进程。

孤儿进程会被系统直接接管.(systemd进程)

image

2.3 演示僵尸进程 ⭐⭐

  • 通过gcc生成僵尸进程的命令文件

image

gcc编译c语言代码的工具

  • top命令查看是否有僵尸进程

image

  • 过滤出僵尸进程
[root@myvps ~]# ps aux |grep Z #找出僵尸进程的pid
pstree -p |grep pid的值
  • 直接结束僵尸进程
kill pid值  如果不行就执行父进程

3. 进程监控指令 ⭐️⭐️⭐️⭐️⭐

Linux中必会的查询进程信息的命令

监控命令 含义
ps 静态:ps查看当前瞬间进程状态,一般用于临时检查或取值.
top 动态:top动态,交互,整体查看系统状态,负载,僵尸进程,cpu,内存. 类似于windows任务管理器.

3.1 ps命令格式

1.1概述:

  • ps -ef

    • UID 进程属于的用户
    • PID 进程id号,大部分都是随机.
    • PPID 父进程的id号, pstree -p查看详细关系
    • CMD 进程名字
  • ps aux

    • 比-ef多了一些,cpu使用率,内存使用率,占用内存大小,进程状态

ps aux 每一列含义

  • ps aux每一列含义
每一列 进程属于用户
第1列: User 进程属于用户
第2列: PID 进程号(子进程号)
第3列: %CPU cpu使用率.
第4列: %MEM 内存使用率
第5列: VSZ 进程占用虚拟内存大小 (KB)
第6列: RSS 进程占用物理内存大小 (KB)
第7列: TTY 用户使用终端(用户连接进来后,系统创建)
第8列: STAT 进程状态
第9列: START 进程启动时间.
第10列: TIME 进程占用CPU时间.
第11列及最后:COMMAND 进程名字(命令,选项 . ) []括起来的是内核进程, 其他是系统进程 systemd pid是1第

image

1.2 进程状态 ⭐⭐

  • 进程状态:进程运行中,僵尸进程,正在进行io的进程,前台或后台运行进程。
  • 进程状态:基本状态+附加组成。
STAT基本状态 描述
R(running) 进程运行
S 可中断进程(可以随时停止)
T(terminate) 进程被暂停(挂起) ctrl +z
D 不可中断进程(进程正在进行IO读写)
Z(zombie) 僵尸进程,异常的进程
STAT状态+符号(附加状态)了解 描述
s 进程是控制进程, Ss进程的领导者,父进程*/主进程
< 进程运行在高优先级上,S<优先级较高的进程
N 进程运行在低优先级上,SN优先级较低的进程
+ 当前进程运行在前台,R+该表示进程在前台运行
l(小写L) 进程是多线程的,Sl表示进程是以线程方式运行(与程序)使用多线程可以让服务或软件支持更改的访问,但是需要软件支持。
  • 常见的进程状态

R+ 前台运行中进程

R 后台运行进程

S 可中断进程(大部分进程)

T 后台挂起的进程 (说完挂起命令就懂了)

D 不可中断进程(io进程)

Ss 可中断进程(普通)管理进程

S< 可中断的高优先级进程

Ssl 可中断的多线程的管理进程

Z 僵尸进程

2. top命令格式

  • top命令默认是个交互式的命令,可以展示系统负载信息,进程信息,cpu,内存信息。类似于Windows任务管理 器

  • 刚刚使用我们核心掌握几个就行,后面随着使用再增加。

image

image

  swap叫交换分区,内存不足的时候临时充当为内存;swap本质是磁盘上面的一块空间,速度没有内存快

 速度对比: cpu ------> 内存------> 磁盘

2.1 案例

01.过滤出crond进程信息 🌟🌟🌟🌟
ps -ef |grep crond
ps aux |grep crond

过滤的结果可以通过grep -v grep 排除下 grep 命令自己(进程)

ps -ef | grep crond | grep -v grep

后面还可以与wc配合使用统计进程数量。

ps -ef | grep crond | grep -v grep |wc -l

根据过滤结果,随时调整过滤的命令条件。

ps -ef | grep '/usr/sbin/sshd'

02. 按照树形结构查看进程信息 🌟🌟🌟🌟
  • 一般用于查看进程间关系
pstree 
pstree -p	 #显示树形结构并输出pid.ps auxf  	 #也可以展示部分所属关系,没有pstree直观。
03. 根据要求,只显示某些内容.🌟🌟🌟🌟
  • 根据要求取出ps命令结果中部分内容
#通过awk取列
ps aux | awk  '{print $1}'
ps aux | awk  '{print $2}'
ps aux | awk  '{print $3}'
ps aux | awk  '{print $1,$3}'  #第1列和第3列#ps命令的选项,输出指定的内容
ps axo user,%cpu,statps axo user,%cpu,stat,cmd
  • 不显示标题(了解)
#awk写法 排除第1行,从第2行开始
ps aux |awk 'NR>1{print $1,$3}'
awk '{print 列}'
awk '条件{print 列}'
awk 'NR > = 1{print 列}'
NR>1 行号大于1
NR>=2 行号大于等于2#ps不输出每一列的标题.
ps no-heading axo user,%cpu,stat
04. 4 取出某一个服务(crond)的进程信息(pid,%cpu,%mem,command)
ps aux |grep  'crond' |awk '{print $2}'ps aux |grep  'crond' |awk '{print $2,$3,$4,$11}'完全使用ps命令过滤出来
ps no-heading  -o pid,%cpu,%mem,command  -C crondno-heading 不显示标题
-C 过滤 注意不要加上ax.
-o输出指定列

awk 最后的列

最后一列
[root@oldboy-king tools]# echo 1 a b lidao 996 |awk '{print $NF}'
996[root@oldboy-king tools]# echo 1 a b lidao 996 |awk '{print $NF-1}'
995倒数第2列
[root@oldboy-king tools]# echo 1 a b lidao 996 |awk '{print $(NF-1)}'
lidao
05. 取出所有进程中内存使用率最高的前5
#使用sort+ps
ps aux |sort -rnk4ps no-heading aux |sort -rnk4 |head -5#只用ps命令方法
ps aux   sort=%mem |head -5
默认是升序排序,指标前面加上-减号表示降序排序。
06. top基础使用与快捷键 🌟🌟🌟🌟
#基础必会用法
q 退出
默认3秒刷新1次, 空格立刻刷新.
P 默认按照CPU使用率排序
M 按照内存使用率排序#进阶用法:top输入z进入颜色模式 按 x 标记出当前是按照哪列排序.shift + > 向右shift + < 向左#top命令升级版,支持鼠标操作
htop

说明: htop是epel源中的命令. 没有需要配置epel源然后安装即可.

07. 非交互模式
  • 未来想获取top命令的结果,指标,需要让top运行在非交互模式
top |awk 'NR 2'top  -bn1 |awk 'NR 2'
-b 非交互模式
-n 只输出1次结果.

awk扩展

[root@myvps ~]# top -bn1|awk 'NR==2' |awk '{print $(NF-1),$NF'}
0 zombie

4. 后台管理

这里我们主要掌握什么是前台,后台,如何让1个前台运行程序进入到后台(运行)。

如何区分前台程序,后台程序:进程状态查看,带+表示前台运行的进程。

  • 前台(前台运行): 需要连接后进行运行或操作,连接断开这个命令,操作就自动结束.

  • 后台(后台运行): 让软件进入系统的后台,持续运行,一般情况下连接断开了也不会影响软件运行.

软件后台运行方法 说明 应用场景
1️⃣命令 & 常用的后台运行方法 大部分时候使用这个即可
2️⃣nohup 命令 & 与第1个类似,会记录输出到文件中默 认叫nohup.out 如果想记录输出则可以用这个方法
3️⃣先运行命令,然后按下ctrl + z(后台挂起),bg 软件进入后台运行 顽固软件ctrl +c 无法结束,可以通 过这个方法结束它
4️⃣ screen命令 通过软件创建空间,让命令在这个空 间运行 稳定性比

4.1 &方法 ⭐⭐⭐⭐⭐

# 案例_01 让sleep 999命令后台运行
sleep 9999 &
[1] 2114[root@myvps ~]# ps  aux |grep sleep
root       2114  0.0  0.0 108052   356 pts/0    S    19:03   0:00 sleep 99999
root       2124  0.0  0.0 112824   976 pts/0    R+   19:04   0:00 grep --color=auto

说明

[1] 2114

1表示 手动进入到后台运行的第1个进程。

2114表示进程pid

jobs可以查看手动进入后台的进程

4.2 nohup 命令 &方法

可以保留输出到指定文件中。默认是nohup.out文件中。其他方面与&符号一致

# 案例_02 让ping baidu.com命令后台运行并记录输出nohup ping -c20 baidu.com &
tail -f nohup.outping -c 表示次数ping多少次

温馨提示 :如果想输出到其他文件

nohup  命令  > 新的文件  &即可

nohup  ping baidu.com  >lidao-new.txt  &

4.3 ctrl+z

这个快捷键不是撤销,这个快捷键在Linux下面表示让当前运行的命令或服务进入 后台挂起 ,如果转为后台运行需要 在输入bg,如果是误触ctrl+z,可以通过fg让进程、命令回到前台。

一般较少使用

4.4 screen

一般我们使用&,nohup方法让命令,服务进入后台运行,但是可能不稳定

这时候可以通过screen命令较为稳定的后台运行一些指令。

简易原理:创建screen空间,screen命令维持,在里面运行的命令只要空间在,里面的命令就不会断(后台运行)。

#1. 安装screen
yum install -y screen#2. 运行screen
screen
进入screen虚拟窗口#3. 执行命令
输入命令 ping baidu.com#4. 退出screen窗口
退出窗口(异常推荐,正常退出)
ctrl + a 然后 d#5. 查看screen窗口
查看
screen -ls#6.恢复
恢复
screen -r彻底结束
ctrl + d 

image

5. 杀首三剑客

3个用于结束进程的命令

命令 说明
kill kill + 进程pid进行结束进程,常用.
pkill pkill + 进程名字, 取你狗命(你和狗),模糊查找.
killall killall + 进程名字,精确
  • kill 信号
    • kill pid 默认发送结束信号
    • kill -9 pid 发送强制结束信号。别用kill -9 结束数据库

6. 负载

6.1概述

  • 负载 load average 平均负载: 最近1分钟 5分钟 15分钟系统平均负载
  • 负载:衡量系统繁忙程度指标.
  • 衡量是否繁忙: 数值越接近cpu核心总数,系统的负载越高 .
  • 预警: 建议负载达到cpu核心总数的70-80%。

负载原理:

​ 那到底如何理解平均负载:平均负载是指单位时间内,系统处于可运行状态(R,S)和不可中断状态(D)的平均进程 数,也就是平均活跃进程数

​ 负载是衡量正在运行的进程的平均数(可以中断进程和不可中断进程).

系统负载显示出什么信息:

​ 负载主要衡量的是可运行状态(R,S 占用CPU)和不可中断 (io)

6.2 负载高?⭐⭐⭐⭐⭐

  • 排查流程

    • 1️⃣通过监控软件发现系统负载高(w,lscpu查看)

    • 2️⃣判断是cpu还是io导致的负载高.

      • cpu高:top中的 us(user 用户占用cpu) sy(system 系统占用cpu)
      • io高: top中的 wa(iowait) 磁盘io导致的负载高
    • 3️⃣

      • 🅰如果是cpu导致的,排查出哪个进程导致的ps aux过滤出占用cpu较高的进程
      • 🅱如果是io导致的,排查初级哪个进程导致的,通过iotop -o命令排查。
    • 4️⃣未完待续.(具体分析这个进程有啥问题,第2阶段再说)

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/862410.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统管理之服务管理---管理命令

1. 系统管理之服务管理---管理命令systemctl 管理服务开机自启动管理正在运行的服务.旧版本的系统:Centos 5.x 6.x 需要使用service 命令检查 sshd 远程连接服务状态systemctl status sshd systemctl status 单个或多个服务名如何设置开启开机自启动 systemctl enable sshd 当…

夜之向日葵

2024 ECF 游记 Day 0 我早就预感到 ecf 要寄,但没想到寄得这么彻底。 比赛之前,我去做了去年 ecf 的题目,发现里面的可做题全部都是贪心,性质和结论题。众所周知,chino 最不擅长的题目类型就是这些。 同时,因为周一周二要考大物和数分,比赛前的一周几乎没有训练。 于是就…

网络流初步

网络流初步(脑部整理) 呜呜呜,家人们也是学上网络流了。 咸鱼起手,你反应得过来吗? 英语不太好(老英不会看窝博客吧) What is 网络流?概述 网络\((network)\)是指一个特殊的有向图 \(G=(V,E)\),其与一般有向图的不同之处在于有容量和源汇点。$E $中的每条边 $ (u, v)$ 都…

金砖技能大赛-内存取证

检材链接 :https://pan.baidu.com/s/1tYgIicCqJExmaMLYa3YeSA 提取码:lulu按照惯例先打印出信息 1.从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password} 形式提交(密码为 6 位); 先使用lsadump指令看看python2 vol.py -f /文件路径/文件 hashdump最后一个是…

script 标签放在 HTML 文档的 body 内底部

以下是将 <script> 标签放在 HTML 文档的 <body> 内底部的几个重要原因: 1. 页面加载顺序和性能优化原理:当浏览器解析 HTML 文档时,它会按顺序执行遇到的元素。如果 <script> 标签位于 <head> 中或 <body> 的顶部,浏览器会在下载和执行脚本…

折腾笔记[4]-cuda的hello-world

在window11上搭建cuda开发环境并编译hello world程序;摘要 在window11上搭建cuda开发环境并编译hello world程序; 关键信息编译器:cuda nvcc 12.4.131 平台:windows11原理简介 cuda简介 CUDA(Compute Unified Device Architecture,统一计算架构)是由英伟达所推出的一种集成技术…

13. 滑块控件

一、抽象滑块QScrollBar、QSlider 和 QDail 都是从 QAbstractSlider 类继承而来的,因此它们的多数方法是相同的。我们可以在终端中使用 pip 安装 pyside6 模块。 pip install pyside6QAbstractSlider 类的常用方法如下: # 实例方法 orientation() -> Qt.Orientation …

3.数据类型

3.1字符串1.正常字符串使用 或 "" 包裹起来2.注意转义字符 \ \ 显示’ \n 换行 \t tab \u4e2d \u### Unicode字符3.多行字符串编写 4.模板字符串5.字符串长度 str(变量名).length6.字符串的可变性,不可变String Buffer和StringBuilder都是可变的,String…

h5如何解决移动端适配问题

使用响应式布局(Responsive Layout)原理:通过CSS媒体查询(Media Queries)根据设备的屏幕尺寸、分辨率等属性来动态调整页面的布局和样式。媒体查询允许您针对不同的媒体类型(如屏幕、打印等)和条件(如屏幕宽度、高度、设备方向等)应用不同的CSS规则。 示例代码:例如,…

第15章 流与IO

第15章 流与IO 15.1 .NET 流的架构 .NET 流的架构主要包含三个概念:** 后台存储 、 装饰器 以及 流适配器 **,如图所示: C7.0 核心技术指南 第7版.pdf - p655 - C7.0 核心技术指南 第 7 版-P655-20240216192328 ​​ 其中** 后台存储 和 装饰器 **为流。后台存储流:负责处理…

超全性能调优标准制定指南,你一定不能错过!

0 前言 我有个朋友说他们国企的系统从未性能调优,功能测试完就上线,线上也没性能问题,何必还做性能调优? 本文搞清:为什么要做性能调优? 啥时开始做? 做性能调优是不是有标准?1 为啥做性能调优?有些性能问题是慢慢产生,到了时间就自爆 更多性能问题是由访问量波动导致…

第16章 网络

第16章 网络 纲要 .NET Framework 在 System.Net.*命名空间中包含了支持各种网络标准的类,支持的标准包括 HTTP、TCP/IP 以及 FTP 等。以下列出了其中的主要组件:​Webclient​ 类 支持通过 HTTP 或者 FTP 执行简单的下载/上传操作。​WebRequest​ 和 WebResponse​ 类 可以…