进阶学习——Linux系统中重点‘进程’

目录

一、程序和进程的关系

1.程序

2.进程

2.1线程

2.2协程

3.进程与线程的区别

4.总结

4.1延伸

5.进程使用内存的问题

5.1内存泄漏——Memory Leak

5.2内存溢出——Memory Overflow

5.3内存不足——OOM(out of memory)

5.4进程使用内存出现的问题原因以及解决办法

二、进程状态

1.进程的基本状态

2.状态之间转换六种情况

3.进程更多的状态

3.1举例

4.进程之间通讯

4.1同一主机

4.2不同主机

5.进程的优先级os

6.进程分类

6.1操作系统分类

6.2进程类型:

6.3按进程资源使用的分类

三、进程管理相关命令

1.PS命令

1.1ps aux输出显示的详解

1.2ps命令常用选项

1.3ps -ef命令输出信息详解

1.4ps命令延伸

2.top命令

2.1在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:

2.2首部信息显示/隐藏

2.3top命令详解

3.pgrep命令

3.1想知道当前系统root一共运行了多少个进程

4.pidof命令

5.pstree命令进程树

6.lsof命令

 7.Vmstat——监控系统资源

8.free

9.iostat


内核作用:进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能

一、程序和进程的关系

1.程序

  • 保存在硬盘、光盘等介质中的可执行代码
  • 静态保存的代码

2.进程

  • 在CPU及内存中运行的程序代码
  • 动态执行的代码
  • 父、子进程
  • 每个程序可以创建一个或多个进程
  • 存在生命周期
  • 是程序的副本

进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。

进程的组成/特征

进程一般由程序、数据集合和进程控制块三部分组成。

  • 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;
  • 并发性:任何进程都可以同其他进程一起并发执行;
  • 独立性:进程是系统进行资源分配和调度的一个独立单位;
  • 结构性:进程由程序、数据和进程控制块三部分组成。

 进程是硬件资源分配的最小单位;进程只负责接收任务,不处理任务;线程是真正参与到实际应用当中的;pstree -p查看到的进程及pid号情况,并不能区分出主进程下是子进程还是线程

2.1线程

在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位。任务调度采用的是时间片轮转的抢占式调度方式,而进程是任务调度的最小单位,每个进程有各自独立的一块内存,使得各个进程之间内存地址相互隔离。

2.2协程

协程,英文Coroutines,是一种基于线程之上,但又比线程更加轻量级的存在,这种由程序员自己写程序来管理的轻量级线程叫做『用户空间线程』,具有对内核来说不可见的特性。

3.进程与线程的区别

  • 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
  • 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
  • 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见;
  • 调度和切换:线程上下文切换比进程上下文切换要快得多。

4.总结

每开启一个进程会消耗相应的硬件资源(内存,cpu,磁盘io(读写),磁盘剩余) ;

内存不足,及时关闭没有用的进程;硬件资源不足要对进程进行清理

pstree 可以查看进程PID号(ps=process );yum install epel-release.noarch -y(会生成一个额外源 ) 

4.1延伸

如何确定一个程序多线程还是单线程

要去/proc找到程序进程号

使用cat /proc/该程序的pid号文件夹/status,可以查看该进程的线程数量

或grep -i threads /proc/该程序的pid号文件夹/status,可以查看该进程的线程数量

或 prtstat 该程序的pid号,可以查看该进程的线程数量

或prtstat 该进程的pid号 | grep -i threads,可以查看该进程的线程数量

5.进程使用内存的问题

5.1内存泄漏——Memory Leak

指程序中用malloc或new申请了一块内存,但是没有用free或delete将内存释放,导致这块内存一直处于占用状态

5.2内存溢出——Memory Overflow

指程序申请了10M的空间,但是在这个空间写入10M以上字节的数据,就是溢出,类似红杏出墙

5.3内存不足——OOM(out of memory)

OOM(out of memory)表示内存用完了,在Java程序中比较常见。系统会选一个进程将之杀死,在日志messages中看到类似下面的提示’Jul 10 10:20:30 kernel: Out of memory: Kill process 9527 (java) score 88 or sacrifice child

JVM(虚拟机)因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error,因为这个问题已经严重到不足以被应用处理)。

5.4进程使用内存出现的问题原因以及解决办法

  1. 给应用分配内存太少:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。
  2. 应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。
  • 限制java进程的max heap,并且降低java程序的worker数量,从而降低内存使用
  • 给系统增加swap空间

pmap  进程id

#可以显示该进程所有进程占用信息

二、进程状态

1.进程的基本状态

  • 创建状态:进程在创建时需要申请一个空白PCB(process control block进程控制块),向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态

  • 就绪状态:进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行

  • 执行状态:进程处于就绪状态被调度后,进程进入执行状态

  • 阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用

  • 终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行

2.状态之间转换六种情况

运行——>就绪

  1. 主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;
  2. 在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态

就绪——>运行

  • 运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU

运行——>阻塞

  • 正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求

阻塞——>就绪

  • 进程所等待的事件已经发生,就进入就绪队列

以下两种状态是不可能发生的

阻塞——>运行

  • 即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取

就绪——>阻塞

  • 就绪态根本就没有执行,谈不上进入阻塞态

3.进程更多的状态

  • 运行态:running
  • 就绪态:ready
  • 睡眠态:分为两种,可中断:interruptable,不可中断:uninterruptable
  • 停止态:stopped,暂停于内存,但不会被调度,除非手动启动
  • 僵死态:zombie,僵尸态,结束进程,父进程结束前,子进程不关闭,杀死父进程可以关闭僵死态 的子进程

当一个进程结束的时候,父进程会回收子进程的硬件资源;如果子进程出现意外关闭,父进程无法收回资源,这样只回收了父进程,子进程资源无法回收就是僵尸进程。

3.1举例

找到STAT列为Z(表示僵尸状态)。

恢复父进程kill -18  父进程pid,使用ps aux再次查看STAT列并无Z出现,恢复成功

4.进程之间通讯

4.1同一主机

pipe 管道

单向传输             cmd1  |  cmd 2
socket  套接字文件

双工通信
Memory-maped file   文件映射

将文件中的一段数据映射到物理内存,多个进程共享这片内存
shm shared memory 共享内存
signal 信号
Lock   对资源上锁

如果资源已被某进程锁住,则其它进程想修改甚至读取这些资源,都将被阻塞,直到锁被打开
semaphore 信号量,一种计数器

4.2不同主机

socket=IP和端口号

RPC remote procedure call   远程调用

5.进程的优先级os

进程优先级调整

  • 静态优先级:100-139
  • 进程默认启动时的nice值为0,优先级为120
  • 只有根用户才能降低nice值(提高优先性

6.进程分类

6.1操作系统分类

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

6.2进程类型

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

注意:两者可相互转化

6.3按进程资源使用的分类

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

三、进程管理相关命令

号代号信号名称说明
1SIGHUP该信号让进程立即关闭.然后重新读取配置文件之后重启
2SIGINT程序中止信号,用于中止前台进程。相当于输出 Ctrl+C 快捷键
3SIGQUIT退出
8SIGFPE在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为 0 等其他所有的算术运算错误
9SIGKILL用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。般用于强制中止进程
14SIGALRM时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号
15SIGTERM正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这 个信号是无法正常中止进程的,这时我们才会尝试 SIGKILL 信号,也就是信号 9
18SIGCONT该信号可以让暂停的进程恢复执行。本信号不能被阻断
19SIGSTOP该信号可以暂停前台进程,相当于输入 Ctrl+Z 快捷键。本信号不能被阻断

1.PS命令

PS,即Process State,可以查看静态的进程当前状态的快照,默认显示当前终端中的进程,Liunx系统各进程的相关信息均保存在/proc/数字目录/status下的文件中

ps aux是查看静态的进程统计信息(默认按PID号排序)

ps -le 可以查看系统中所有的进程,而且还能看到进程的父进程PID和进程优先级

ps -l 只能看到当前Shell产生的进程

1.1ps aux输出显示的详解

USER:该进程是由哪个用户产生的

PID :进程的 ID

%CPU :该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源

%MEM :该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源

VSZ:Virtual memory SiZe,虚拟内存集,线性内存;该进程占用虚拟内存的大小,单位为 KB

RSS: ReSident Size, 常驻内存集;该进程占用实际物理内存的大小,单位为 KB

TTY :该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。?代表和终端无关,系统进程

STAT:进程状态

字母含义
Rrunning该进程正在运行
Sinterruptable sleeping该进程处于睡眠状态,可被唤醒
Duninterruptable sleeping不可被唤醒的睡眠状态,通常用于 I/O 情况
Tstopped停止状态,可能是在后台暂停或进程处于除错状态
W内存交互状态(从 2.6 内核开始无效)
X死掉的进程(应该不会出现)
Zzombie僵尸进程。进程已经中止,但是还是占用硬件资源
+前线进程
l多线程进程;多线程(小写 L)
L内存分页并带锁
N低优先级进程
<高优先级进程
ssession leader会话(子进程)发起者;包含子进程
IIdle kernel thread,Centos 8新特性

START:该进程的启动时间

TIME:该进程占用CPU的运算时间,注意不是系统时间

COMMAND:产生此进程的命令名

ni:nice值

pri:priority 优先级

rtprio:实时优先级

psr:processor cpu编号 

ps axo    pid/cmd/psr/ni/pri/rtprio

1.2ps命令常用选项

选项说明
a显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。
u使用以用户为主的格式输出进程信息
x显示当前用户在所有终端下的进程信息
-e显示系统内的所有进程信息
-l使用长(Long)格式显示进程信息
-f使用完整的(Full)格式显示进程
k  --sort属性对属性排序,属性前加 - 表示倒序 ps aux k -%cpu
o属性显示定制的信息 pid、cmd、%cpu、%mem

1.3ps -ef命令输出信息详解

F:进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限;

S:进程状态。具体的状态和"psaux"命令中的 STAT 状态一致

UID:运行此进程的用户的 ID

PID:进程的ID

PPID:父进程的ID

C:该进程的CPU使用率,单位是百分比

PRI :进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改

NI :进程的优先级,数值越小,该进程越早被执行;可以人为修改

ADDR :该进程在内存的哪个位置

SZ :该进程占用多大内存

WCHAN :该进程是否运行。"-"代表正在运行

TTY :该进程由哪个终端产生

TIME :该进程占用 CPU 的运算时间,注意不是系统时间

CMD :产生此进程的命令名

1.4ps命令延伸

  • 查看进程的特定属性

ps axo pid,cmd,%mem,%cpu

  • 按CPU利用率倒序排序

ps aux k -%cpu

dd if=/dev/zero of=/dev/null

  • 排序,查找占用最多内存和CPU的进程

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

  • 按内存倒序排序

ps axo pid,cmd,%cpu,%mem --sort %mem

  • 查看进程信息

prtstat pid号

  • 找到cpu利用率最高的进程

  • 找到内存占用率最高的进程

  • 显示定制信息

  • 挑选项按百分比排序

  • mem加-是代表倒序 不加-是挑选项按顺序排列

  • 查看进程详细信息

2.top命令

top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

选项含义
-d  秒数指定 top 命令每隔几秒更新。默认是 3 秒
-b使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中
-n 次数指定 top 命令执行的次数。一般和"-"选项合用
-p 进程pid仅查看指定 ID 的进程
-s使 top 命令在安全模式中运行,避免在交互模式中出现错误
-u  用户名只监听某个用户的进程

2.1在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作

  • ? 或 h:显示交互模式的帮助;
  • c:按照 CPU 的使用率排序,默认就是此选项;
  • M:按照内存的使用率排序;
  • N:按照 PID 排序;
  • T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
  • k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
  • r:按照 PID 给某个进程重设优先级(Nice)值;
  • q:退出 top 命令;

2.2首部信息显示/隐藏

  • uptime信息:l命令
  • tasks及cpu信息:t命令
  • cpu分别显示:1 (数字)
  • memory信息:m命令
  • 退出命令:q
  • 修改刷新时间间隔:s
  • 终止指定进程:k
  • 保存文件:W

top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分:

  1. 第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;
  2. 第二部分从第六行开始,显示的是系统中进程的信息;

2.3top命令详解

第一行  任务队列信息
内容说明
17:56:19系统当前时间
UP 3:54系统的运行时间.本机己经运行 3 小时 54分钟
1 user当前登录了一个用户
load  average:0.00,,0.01,0.04系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)
第二行  进程信息
内容说明
Tasks:146 total系统中的进程总数
1 running正在运行的进程数
145 sleeping睡眠的进程数
0  stopped正在停止的进程数
0  zombie僵尸进程数。如果不是 0,则需要手工检查僵尸进程
第三行 CPU 信息
内容说明
%Cpu(s) 0.0 us用户模式占用的 CPU 百分比 个人用户开启的进程占用的 cpu 率
0.0 sy系统模式占用的 CPU 百分比
0.0 ni改变过优先级的用户进程占用的 CPU 百分比
100.0 id空闲 CPU 占用的 CPU 百分比
0.0 wa等待输入/输出的进程占用的 CPU 百分比 
0.0 hi硬中断请求服务占用的 CPU 百分比
0.0 si软中断请求服务占用的 CPU 百分比
0.0 stst(steal time)意为虚拟程序占用 cpu 时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比
第四行  物理内存信息
内容说明
Mem:1867048 total物理内存的总量,单位为KB
1210112 free空闲的物理内存数量
289224 used己经使用的物理内存数量
367712 buff/cache作为缓冲的内存数量
第五行为交换分区(swap)
内容说明
Swap 4194300 total交换分区(虚拟内存)的总大小
4194300 free空闲交换分区的大小
0 used已经使用的交换分区的大小
1387184 avail Mem作为缓存的交换分区的大小

缓冲(buffer)和缓存(cache)的区别

  • 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
  • 缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

表头含义
PID进程的ID
USER该进程所属的用户
PR优先级,数值越小优先级越高
NI优先级,数值越小优先级越高
VIRT该进程使用的虚拟内存的大小,单位为KB
RES该进程使用的物理内存的大小,单位为KB
SHR共享内存大小,单位为KB
S进程状态
%CPU

该进程占用CPU的百分比

%MEM

该进程占用内存的百分比

TIME+该进程共占用的CPU时间
COMMAND进程的命令名

3.pgrep命令

根据特定条件查询进程PID信息

选项含义
-U指定用户
-l显示进程名
-a显示完整格式的进程名
-p  pid显示指定进程的子进程

3.1想知道当前系统root一共运行了多少个进程

4.pidof命令

可以通过查询程序名,找到其pid号

[root@localhost ~]#pidof nginx
#查看  nginx进程的 pid 号

5.pstree命令进程树

以树形结构列出进程信息

选项含义
-a显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
-p显示PID
-T不显示线程thread,默认显示线程
-u显示用户切换
-Hpid 高亮显示指定进程及其前辈进程
[root@test ~]# pstree  1
#查看进程号为1的进程
   
[root@test ~]# pstree lisi
#查看用户lisi的进程

[root@test ~]# pstree -pH 1780
#高亮

6.lsof命令

lsof 命令,“list opened files”的缩写,直译过来,就是列举系统中已经被打开的文件。通过 lsof 命令,我们就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

选项含义
-c字符串只列出以字符串开头的进程打开的文件
+d目录名列出某个目录中所有被进程调用的文件
-u用户名只列出某个用户的进程打开的文件
-p pid列出某个PID进程打开的文件
-i 端口号查看哪些进程占用了端口
[root@localhost ~]# lsof | more
#查询系统中所有进程调用的文件




误删文件可以找回
有人在使用
lsof |grep delete
cupsd      1144(pid)           root   10r      REG              253,0      2337    9381005 /etc/passwd+ (deleted)

ll /proc/1144/fd
fd 是文件描述符
[root@localhost data]#ll /proc/1144/fd
总用量 0
lr-x------. 1 root root 64 11月 29 11:26 0 -> /dev/null
lrwx------. 1 root root 64 11月 29 11:26 1 -> socket:[20288]
lr-x------. 1 root root 64 11月 29 11:26 10 -> /etc/passwd+ (deleted)
lrwx------. 1 root root 64 11月 29 11:26 11 -> socket:[24022]
lrwx------. 1 root root 64 11月 29 11:26 12 -> socket:[24023]

cat /proc/1144/fd/10

 

 7.Vmstat——监控系统资源

如果你想动态的了解一下系统资源的使用状况,以及查看当前系统中到底是哪个环节最占用系统资源,就可以使用 vmstat 命令。

vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息。

字段含义
procs

进程信息字段:

-r:等待运行的进程数,数量越大,系统越繁忙。

-b:不可被唤醒的进程数量,数量越大,系统越繁忙。

memory

内存信息字段:

-swpd:虚拟内存的使用情况,单位为 KB。

-free:空闲的内存容量,单位为 KB。

-buff:缓冲的内存容量,单位为 KB。

-cache:缓存的内存容量,单位为 KB。

swap

交换分区信息字段:

-si:从磁盘中交换到内存中数据的数量,单位为 KB。

-so:从内存中交换到磁盘中数据的数量,单位为 KB。

这两个数越大,表明数据需要经常在磁盘和内存之间进行交换,系统性能越差。

io

磁盘读/写信息字段:

-bi:从块设备中读入的数据的总量,单位是块。

-bo:写到块设备的数据的总量,单位是块。

这两个数越大,代表系统的 I/O 越繁忙。

system

系统信息字段:

-in:每秒被中断的进程次数。

-cs:每秒进行的事件切换次数。

这两个数越大,代表系统与接口设备的通信越繁忙。

cpu

CPU信息字段:

-us:非内核进程消耗 CPU 运算时间的百分比。

-sy:内核进程消耗 CPU 运算时间的百分比。

-id:空闲 CPU 的百分比。

-wa:等待 I/O 所消耗的 CPU 百分比。

-st:被虚拟机所盗用的 CPU 百分比 。

通过分析 vmstat 命令的执行结果,可以获得一些与当前 Linux 运行性能相关的信息。比如说:

  • r 列表示运行和等待 CPU 时间片的进程数,如果这个值长期大于系统 CPU 的个数,就说明 CPU 不足,需要增加 CPU。
  • b 表示不可中断睡眠的进程
  • swpd 列表示切换到内存交换区的内存数量(以 kB 为单位)。如果 swpd 的值不为 0,或者比较大,而且 si、so 的值长期为 0,那么这种情况下一般不用担心,不用影响系统性能。
  • cache 列表示缓存的内存数量,一般作为文件系统缓存,频繁访问的文件都会被缓存。如果缓存值较大,就说明缓存的文件数较多,如果此时 I/O 中 bi 比较小,就表明文件系统效率比较好。
  • 一般情况下,si(数据由硬盘调入内存)、so(数据由内存调入硬盘) 的值都为 0,如果 si、so 的值长期不为 0,则表示系统内存不足,需要增加系统内存。
  • 如果 bi+bo 的参考值为 1000 甚至超过 1000,而且 wa 值较大,则表示系统磁盘 I/O 有问题,应该考虑提高磁盘的读写性能。
  • 输出结果中,CPU 项显示了 CPU 的使用状态,其中当 us 列的值较高时,说明用户进程消耗的 CPU 时间多,如果其长期大于 50%,就需要考虑优化程序或算法;sy 列的值较高时,说明内核消耗的 CPU 资源较多。通常情况下,us+sy 的参考值为 80%,如果其值大于 80%,则表明可能存在 CPU 资源不足的情况。

总的来说,vmstat 命令的输出结果中,我们应该重点注意 procs 项中 r 列的值,以及 CPU 项中 us 列、sy 列和 id 列的值。

8.free

查看内存占用情况

9.iostat

iostat 可以提供更丰富的IO性能状态数据

选项含义
-c只显示cpu行
-d显示设备(磁盘)使用状态
-k以千字节为单位显示输出
-t在输出中包含时间戳
-x在输出中包含扩展的磁盘指标

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Algorithm-Left Edge算法

算法输入&#xff1a; 多个段&#xff0c;每个段由两个值表示&#xff0c;例如&#xff08;1&#xff0c;3&#xff09; 算法原理&#xff1a; 将多个段按照左边的值排序放到列表中遍历列表&#xff0c;不断选择没有重叠的段&#xff0c;直到列表遍历结束&#xff0c;将选择…

fineBI web组件传参

1、fineBI web组件传参 1.1、 Web组件- FineBI帮助文档 FineBI帮助文档1. 概述1.1 版本FineBI 版本HTML5移动端展现功能变动6.0--V11.0.83web组件适配移动端效果优化6.0.13-web组件支持传递参数 ${过滤组件https://help.fanruan.com/finebi/doc-view-143.html 1.2、自己做的例…

Java 将Excel转换为TXT文本格式

TXT文件是一种非常简单、通用且易于处理的文本格式。在处理大规模数据时&#xff0c;将Excel转为TXT纯文本文件可以提高处理效率。此外&#xff0c;许多编程语言和数据处理工具都有内置的函数和库来读取和处理TXT文件&#xff0c;因此将Excel文件转换为TXT还可以简化数据导入过…

如何读取tif格式文件(基于PIL)

背景介绍 在许多机器学习的任务中&#xff0c;大多数图像类型的训练数据集会以tif的格式储存&#xff0c;在这种情况下&#xff0c;如何读取tif格式的数据就至关重要 tif格式 TIF&#xff08;Tagged Image File Format&#xff09;格式&#xff0c;也被称为TIFF&#xff0c;是…

基于Vue开发的一个仿京东电商购物平台系统(附源码下载)

电商购物平台项目 项目完整源码下载 基于Vue开发的一个仿京东电商购物平台系统 Build Setup # csdn下载该项目源码压缩包 解压重命名为sangpinghui_project# 进入项目目录 cd sangpinghui_project# 安装依赖 npm install# 建议不要直接使用 cnpm 安装以来&#xff0c;会有各…

生成式AI在自动化新时代中重塑RPA

生成式AI的兴起正在推动行业的深刻变革&#xff0c;其与RPA技术的结合&#xff0c;标志着自动化领域新时代的到来。这种创新性结合极大地提升了系统的适应性&#xff0c;同时也推动了高级自动化解决方案的发展&#xff0c;为下一代RPA的诞生奠定了坚实的基础。 核心RPA技术专注…

数据结构——二叉树四种遍历的实现

目录 一、树的概念 1、树的定义 1&#xff09;树 2&#xff09;空树 3&#xff09;子树 2、结点的定义 1&#xff09;根结点 2&#xff09;叶子结点 3&#xff09;内部结点 3、结点间关系 1&#xff09;孩子结点 2&#xff09;父结点 3&#xff09;兄弟结点 4、树…

船舶数据采集与分析在线能源监测解决方案

一、船舶在线能源监测应用前景 船舶在线能源监测在能源效率优化、故障诊断和预测维护、节能减排和环保监管、数据分析和决策支持以及自动化智能化等方面具有广阔的应用前景。随着船舶行业对能源管理和环保要求的不断提高&#xff0c;船舶在线能源监测技术将成为船舶运营和管理中…

华为端口隔离高级用法经典案例

最终效果&#xff1a; pc4不能ping通pc5&#xff0c;pc5能ping通pc4 pc1不能和pc2、pc3通&#xff0c;但pc2和pc3能互通 vlan batch 2 interface Vlanif1 ip address 10.0.0.254 255.255.255.0 interface Vlanif2 ip address 192.168.2.1 255.255.255.0 interface MEth0/0/1 i…

2020年认证杯SPSSPRO杯数学建模A题(第二阶段)听音辨位全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 A题 听音辨位 原题再现&#xff1a; 把若干 (⩾ 1) 支同样型号的麦克风固定安装在一个刚性的枝形架子上 (架子下面带万向轮&#xff0c;在平地上可以被水平推动或旋转&#xff0c;但不会歪斜)&#xff0c;这样的设备称为一个麦克风树。不同的麦…

imgaug库指南(二):从入门到精通的【图像增强】之旅

文章目录 引言前期回顾代码示例小结结尾 引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应…

SpingBoot的项目实战--模拟电商【3.购物车模块】

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于SpringBoot电商项目的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.功能需求 二.代码编写 …

微服务-Gateway

案例搭建 官网地址 父Pom <com.alibaba.cloud.version>2.2.8.RELEASE</com.alibaba.cloud.version> <com.cloud.version>Hoxton.SR12</com.cloud.version> <com.dubbo.version>2.2.7.RELEASE</com.dubbo.version> <dependencyManagem…

文件摆渡系统如何实现网络隔离后的数据交换、业务流转?

近年来全球网络安全威胁态势的加速严峻&#xff0c;使得企业对于网络安全有了前所未有的关注高度。即便没有行业性的强制要求&#xff0c;但在严峻的安全态势之下&#xff0c;企业的网络安全体系建设正从“以合规为导向”转变到“以风险为导向”&#xff0c;从原来的“保护安全…

【操作系统xv6】学习记录--实验1 Lab: Xv6 and Unix utilities--未完

ref:https://pdos.csail.mit.edu/6.828/2020/xv6.html 实验&#xff1a;Lab: Xv6 and Unix utilities 环境搭建 实验环境搭建&#xff1a;https://blog.csdn.net/qq_45512097/article/details/126741793 搭建了1天&#xff0c;大家自求多福吧&#xff0c;哎。~搞环境真是折磨…

nginx在国产服务器上stream配置项无法识别的问题

最近在搭建k8sranchar&#xff0c;需要用到nginx做负载均衡&#xff0c;之前在系统中也会用到&#xff0c;之前一直使用http选项&#xff0c;做转发配置。 基本格式如下图所示&#xff1a; 但是在ranchar的安装中默认方式使用stream配置项。 使用yum默认安装的nginx不支持该关…

MySQL四大引擎,数据库管理,数据表管理,数据库账号管理

MySQL四大引擎 InnoDB InnoDB引擎是MySQL默认的存储引擎。它支持事务和行级锁定&#xff0c;并具有高并发性和数据完整性保护的特性。InnoDB适用于具有复杂查询和高并发读写操作的应用程序。MyISAM InnoDB引擎特点和优势 事务支持&#xff1a;InnoDB支持ACID&#xff08;原子…

设备树入门

设备树 设备树是一种树形数据结构&#xff0c;其节点描述系统中的设备。每个节点都有描述所表示设备的特征的属性/值对。每个节点只有一个父节点&#xff0c;但根节点除外&#xff0c;根节点没有父节点。 符合 DTSpec 的设备树描述了系统中不一定能被客户端程序动态检测到的设…

数据库攻防学习之MySQL

MySQL 0x01mysql学习 MySQL 是瑞典的MySQL AB公司开发的一个可用于各种流行操作系统平台的关系数据库系统&#xff0c;它具有客户机/服务器体系结构的分布式数据库管理系统。可以免费使用使用&#xff0c;用的人数很多。 0x02环境搭建 这里演示用&#xff0c;phpstudy搭建的…

分布微服软件体系快速云端架构

1 概述 分布微服软件体系云端架构平台&#xff0c;以主流的NACOS服务器作为注册配置中心&#xff0c;采用主流的Gradle框架&#xff0c;内嵌Tomcat10以上版本&#xff0c;用于快速构造各类基于JDK17以上的信息应用系统的分布式微服务软件体系架构&#xff0c;可以适用关系型SQ…