Linux进程和进程优先级(top+ps+kill+renice+df+free命令)

Posted 爱敲代码的三毛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux进程和进程优先级(top+ps+kill+renice+df+free命令)相关的知识,希望对你有一定的参考价值。

文章目录


概念

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源,程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。
线程和进程可以看看这个博客线程和进程

Linux下的进程管理命令

top命令

语法:top
功能:动态监测CPU信息
常用选项
-p [PID]:通过PID查找指定进程信息

系统整体情况

1. 第一行

  • 16:19:07:系统当前时间
  • up 33 days:系统运行时间,机器已经开机33天
  • 3 users :当前登录了三个用户
  • load average:0.27,0。17,0。10:系统在之前 1分分钟,5分钟,15分钟的平均负载。如果cpu是单核,则这个数值超过1就是高负载,如果CPU是2核的,则这个数值超过2就是高负载

2. 第二行

  • 1 running:正在运行的进程数
  • 104 sleeping:睡眠的进程数
  • 0 stopped:睡眠的进程数
  • 0 zombie:僵尸进程数,如果不是0,则需要手动检查僵尸进程

3. 第三行

  • Cpu(s):1.3 %us:用户模式占用的 CPU百分比
  • 1.3 %sy:系统模式占用的 CPU百分比
  • 0.0 %ni:改变过优先级的用户进程占用的 CPU百分比
  • 97.3 %id:idle缩写,空闲 CPU 占用的CPU百分比
  • 0.0 %wa:等待输入/输出的进程占用的 CPU百分比
  • 0.0 %hi:硬中断请求服务占用的 CPU百分比
  • 0.0 %si:软中断请求服务占用的 CPU百分比
  • 0.0 %st:st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟CPU等待实际 CPU 的时间百分比

4. 第四行

  • Mem:3688712 total:物理内存的总量,单位为KB
  • 1382100 free:已经使用的物理内存数量
  • 450608 used:空闲的物理内存数量
  • 1856004 buff/cache:作为缓冲的内存数量

注意:真正剩余的内存 = free + buff/cache,,真正使用的内存 = used - buff/cache

5. 第五行

  • Swap:0 total:交换分区(虚拟内存)的总大小
  • 0 used:已经使用的交换分区大小
  • 0 free:空闲交换分区的大小
  • 2973372 avail Mem:可用内存

在Linux操作系统分区时,最少需要3个分区:

  1. /boot:系统分区
  2. swap:交换分区:一般情况下为内存的1~2倍,但尽量不爱超过2G
  3. /分区:也就根分区,所有文件都存在于此

swap分区:就是当计算机的内存不足的时候,系统会自动从硬盘中划分出一块区域充当内存使用

6. 多核心CPU查看情况

如果想同时查看CPU每个核心的运行情况可以,使用 top命令再按交换快捷键 1(数字1)


通过top命令的整体信息部分,就可以查看服务器的健康状态。如果 1 分钟、5 分钟、15 分钟的平均负载高于CPU核数,说明系统压力较大。如果物理内存的空闲内存过小,则也证明系统压力较大。

注意:如果1分钟、5分钟以及15分钟全部超过CPU的总核心数(必须引起警觉),这个时候就要查

如果一个总核数=8核心的CPU,理论上平均负载达到16,也还可以坚持很长一段时

系统的进程信息

  • PID:进程的ID(id是唯一的)
  • PR:进程的优先级(数值越小优先级越高)
  • NI:NICE优先级,数值越小优先级越高,取值范围为 -20~19,默认都是0
  • VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  • RES:该进程使用的物理内存的大小,单位为 KB。
  • SHR:共享内存大小,单位为 KB。计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
  • S:进程状态。其中S 表示睡眠,R 表示运行
  • %CPU:该进程占用 CPU 的百分比。
  • %MEM:该进程占用内存的百分比。
  • TIME+:该进程共占用的 CPU 时间。
  • COMMAND:进程名

1. 如何查看占用CPU最多的进程

交互操作快捷键P,P(大写):,表示将结果按照CPU 使用率从高到低进行降序排列

2.如果查看占用内存最多的进程

查看占用内存最多的进程,使用交互快捷键M(大写):表示将结果按照内存(MEM)从高到低进行降序排列

3. free 查看内存情况

语法:free [选项]
选项:-m:以MB的形式显示内存大小

4. df 查看磁盘

语法:df [选项]
选项:-h:以较高的可读性显示磁盘剩余空间大小

  • Filesystem:磁盘名称
  • Size:总大小
  • Used:被使用的大小
  • Avail:剩余大小
  • Use%:使用百分比
  • Mounted on:挂载路径(相当于Windows 的磁盘符)

5. ps查看系统进程信息

语法:ps [选项]
常用选项:
-e:等价于“-A”,表示列出全部(all)的进程
-f:表示full,显示全部的列(显示全字段)
-aux:查看

  • UID:该进程执行的用户ID
  • PPID:该进程的父级进程ID,如果找不到,则该进程就被称之为僵尸进程(Parent Process ID)
  • C:Cpu的占用率,其形式是百分数
  • STIME:进程启动的时间
  • TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起
  • TIME:进程实际使用CPU的时间
  • CMD:该进程的名称或者对应的路径

c常用ps命令其实主要用于查询某个进程的PID或PPID

ps -aux

  • USER:该 进程 属于哪个用户
  • PID:该进程的ID
  • %CPU:该进程使用掉的CUP资源百分比
  • VSZ:该进程使用掉的虚拟内存(kb)
  • RSS:该进程占用的固定的内存量(kb)
  • TTY:该进程是在那个终端机上面运行,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序
  • STAT:该程序目前的状态,主要有
    STAT:该程序目前的状态,主要的状态有==
    R :该程序目前正在运作,或者是可被运作
    S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
    T :该程序目前正在侦测或者是停止了
    Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
  • START:该 process 被触发启动的时间
  • TIME :该 process 实际使用 CPU 运作的时间
  • COMMAND:该程序的实际指令

netstat/ss 查询网络访问信息

语法:netstat [选项] | grep 进程名称

常用选项:
-t:表示只列出tcp 协议的连接(tcp协议与udp协议)
-n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示 10.1.1.10:80
-l:表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接
-p:表示显示发起连接的进程pid 和进程名称

ss基本语法

ss -naltp | grep 进程名称

netstat与ss区别?① netstat信息比较简洁,ss更加丰富 ② ss执行效率比netstat略高

Kill/killall杀死进程

1. 根据pid杀掉进程

语法:kill [信号] PID
作用:kill命令会向操作系统发送一个信号(一般都是发送终止信号)和目标进程的PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作
kill一般结合ps命令一起使用

kill命令用于杀死某个进程,这其实只是其一个功能。kill命令的实质是向进程发送信号

注意:如果没有写信号编号默认就是15

信号编号含义
9杀死进程
15正常结束进程

示例:
使用 kill命令杀死 crond进程

经常看到kill -9 进程PID,强制杀死某个进程,kill -9 pid

2. 根据进程名杀掉进程

基本语法:
killall [信号编号]进程名称
作用:
杀死一类名称相同的进程
示例:
杀死所有 httpd 的进程

进程的优先级

1. 什么是进程的优先级

Linux是一个多用户、多任务的操作系统,系统中通常运行着很多进程。哪些进程先运行,哪些进程后运行,就由
进程优先级来控制

什么时候需要用到进程的优先级呢?
当CPU负载过高时,如CPU的使用率>=90%以上。这个时候进程的优先级就会起作用。

2. 查看进程的优先级

PR优先级,数值越小优先级越高
NI 优先级,数字越小优先级越高,可以认为更改(NI = NICE = Nice)

3.调整进程优先级

1)使用top命令调整进程优先级

  1. 先使用 top 命令获取想要调整的进程信息(PID编号)

  2. 运行top命令让后 按小写 r,输入要调整的PID编号

  3. 根据提示,重置NICE值

  4. 按q退出top模式,然后使用top -p PID编号,只查询某个进程的信息

2)使用 renice 命令调整进程优先级

语法:renice [NI优先级设置的数字] 想调整进程的名称

注意:NICE值取值范围-20 ~ 19,不能使用小数

  1. 第一步:使用ps或者top命令获取atd的PID编号
    ps -ef | grep mysql

  2. 第二步:使用 renice命令调整 1205的NICE值
    renice 01205

  3. 查看优先级
    top -p 1205

3. 是用 nice 命令调整进程的优先级

语法:nice [NI优先级设置的数字] 想调整的进程名称
注意:nice 命令只能调整没有运行的程序

  1. 第一步:将程序停止
    使用 kill PID或者 systemctl stop [服务名]

  1. 第二步:启动并定制优先级
    nice -n [NICE值] [进程名称]

nice命令包含两个功能:① 启动进程 ② 调整进程的优先级


3. 确认优先级

top -p [PID]


以上是关于Linux进程和进程优先级(top+ps+kill+renice+df+free命令)的主要内容,如果未能解决你的问题,请参考以下文章

Linux进程管理

linux命令12

Linux--命令大全/常用命令--管理类--内存/磁盘/进程--top/free/du/df/ps/pstree/kill/killall

[Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务

进程监控top free ps grep pgrep pkill kill & bg fg jobs nohup ctrl+z pstree

linux-进程管理,ps,pstree,nice,top,vmstat,kill,jobs