查看 Linux 系统负载情况

系统平均负载

系统平均负载是指在特定时间间隔内运行队列中的平均进程数。如果每个 CPU 内核的当前活动进程数不大于 3 的话,那么系统的性能是良好的。如果每个 CPU 内核的任务数大于 5 ,那么这台机器的性能有严重问题。 1 可以被认为是最优的负载值。负载是会随着系统不同改变得。

uptime

用于获取主机运行时间和查询 linux 系统负载等信息。

1
2
[root@localhost /]# uptime
18:06:48 up 130 days, 5:10, 3 users, load average: 0.00, 0.01, 0.05

内容说明:

1
2
3
4
18:06:48           // 系统当前时间
up 130 days, 5:10 // 主机已运行时间,时间越大,说明你的机器越稳定
3 users // 用户连接数,是总连接数而不是用户数
load average // 系统平均负载,统计最近 1,5,15 分钟的系统平均负载

cat /proc/loadavg

1
2
[root@localhost /]# cat /proc/loadavg 
0.00 0.01 0.05 1/408 5826

内容说明:

1
2
3
0.00 0.01 0.05 // 表示最近 1 分钟,5 分钟,15 分钟系统的平均负载,系统负载越高,代表 CPU 越繁忙
1/408 // 1 代表此时运行队列中的进程个数,408 代表系统中进程的总数
5826 // 代表到此为止创建的最后一个进程的 ID

w

1
2
3
4
5
6
[root@localhost /]# w
18:12:23 up 130 days, 5:16, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 11Sep20 127days 0.08s 0.08s -bash
root pts/2 10.5.xx.xx 11Jan21 1:55m 1.13s 1.13s -bash
root pts/3 10.5.xx.xx 15:24 7.00s 0.54s 0.00s w

内容说明:

1
2
3
4
5
6
7
8
9
第一行信息和前面的相同
USER:用户名
TTY:录后系统分配的终端号
FROM:远程主机名(即从哪儿登录来的)
LOGIN@:何时登录
IDLE:空闲了多长时间,表示用户闲置的时间。
JCPU:和该终端(tty)连接的所有进程占用的时间,这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
PCPU:指当前进程(即在WHAT项中显示的进程)所占用的时间
WHAT:当前正在运行进程的命令行

top

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@localhost /]# top
top - 19:04:52 up 130 days, 6:08, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 116 total, 1 running, 115 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 98.4 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8011220 total, 4924096 free, 2400344 used, 686780 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 5250192 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5888 root 20 0 146172 1932 1368 R 6.7 0.0 0:00.01 top
1 root 20 0 54916 17016 1980 S 0.0 0.2 4:44.61 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:02.86 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:07.95 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.27 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/1
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/2
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/3

# 修改更新速度为 1 秒
top -d 1

内容说明:

1
2
3
4
5
6
第一行和前面的命令一样
第二行:进程总数:116 正在运行进程数:1 睡眠进程数:115 停止的进程数:0 僵尸进程数:0
第三行:分别显示的是:用户空间占用 CPU 百分比、内核空间占用 CPU 百分比、用户进程空间内改变过优先级的进程占用 CPU 百分比、 空闲 CPU 百分比、等待输入输出的 CPU 时间百分比、CPU 服务软中断所耗费的时间总额、 StealTime
第四行:分别显示的是:物理内存总量、使用的物理内存总量、空闲内存总量、用作内核缓存的内存量
第五行: 分别显示的是:换区总量、 使用的交换区总量、空闲交换区总量、缓冲的交换区总量
第六行:进程ID、进程所有者、优先级、nice值,负值表示高优先级,正值表示低优先级、进程使用的虚拟内存总量、进程使用的、未被换出的物理内存大小、共享内存大小、进程状态、上次更新到现在的CPU时间占用百分比、进程使用的物理内存百分比、进程使用CPU总时间、命令名、命令行

tload

显示的是平均负载:表示最近1分钟,5分钟,15分钟的系统平均负载。

本文参考:https://blog.csdn.net/xing1584114471/article/details/93385400