了解Linux负载平均和监视Linux的性能

在本文中,我们将介绍一个关键的Linux系统管理任务 - 关于系统/ CPU负载均衡的性能监视。

在本文中,我们将介绍一个关键的Linux系统管理任务 - 关于系统/ CPU负载和负载均衡的性能监视。

在我们进一步推动之前,让我们在所有类Unix系统中了解这两个重要的短语:

  • 系统负载/ CPU负载 - 是Linux系统中CPU过度或低利用率的度量; 正在由CPU执行或处于等待状态的进程数。
  • 负载平均值 - 在给定时间段内计算的平均系统负载为1,5和15分钟。

在Linux中,负载均衡在技术上被认为是标记为运行或不间断的(内核)执行队列中的进程的运行平均值。

注意:

  • 所有如果不是大多数由Linux或其他类Unix系统供电的系统都可能会显示用户某处的负载平均值。
  • 彻底的空闲Linux系统可能具有零的负载平均值,不包括空闲进程。
  • 几乎所有类似Unix的系统仅计算运行状态或等待状态中的进程。 但Linux不是这样,它包括不间断睡眠状态的进程; 那些等待其他系统资源的磁盘I / O等

如何监控Linux系统负载平均

监控系统负载平均值的方法有很多种,包括正常运行时间,显示系统运行了多长时间,用户数与负载平均值相同:

$ uptime
07:13:53 up 8 days, 19 min,  1 user,  load average: 1.98, 2.15, 2.21

数字从左到右读取,上面的输出表示:

  • 过去1分钟的负载平均值为1.98
  • 过去5分钟内的负载平均值为2.15
  • 过去15分钟内的平均负荷为2.21

高负载平均值意味着系统过载; 许多进程正在等待CPU时间。

我们将在下一节中发现与CPU内核数相关的内容。 此外,我们还可以使用其他众所周知的工具,如顶部扫视 ,显示运行的Linux系统的实时状态,以及许多其他工具:

顶级命令

$ top
显示运行的Linux进程
top - 12:51:42 up  2:11,  1 user,  load average: 1.22, 1.12, 1.26
Tasks: 243 total,   1 running, 242 sleeping,   0 stopped,   0 zombie
%Cpu(s): 17.4 us,  2.9 sy,  0.3 ni, 74.8 id,  4.6 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8069036 total,   388060 free,  4381184 used,  3299792 buff/cache
KiB Swap:  3906556 total,  3901876 free,     4680 used.  2807464 avail Mem 
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                        
6265 howtoing   20   0 1244348 170680  83616 S  13.3  2.1   6:47.72 Headset                                                                                                                                        
2301 howtoing    9 -11  640332  13344   9932 S   6.7  0.2   2:18.96 pulseaudio                                                                                                                                     
2459 howtoing   20   0 1707692 315628  62992 S   6.7  3.9   6:55.45 cinnamon                                                                                                                                       
2957 howtoing   20   0 2644644 1.035g 137968 S   6.7 13.5  50:11.13 firefox                                                                                                                                        
3208 howtoing   20   0  507060  52136  33152 S   6.7  0.6   0:04.34 gnome-terminal-                                                                                                                                
3272 howtoing   20   0 1521380 391324 178348 S   6.7  4.8   6:21.01 chrome                                                                                                                                         
6220 howtoing   20   0 1595392 106964  76836 S   6.7  1.3   3:31.94 Headset                                                                                                                                        
1 root      20   0  120056   6204   3964 S   0.0  0.1   0:01.83 systemd                                                                                                                                        
2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                                                                                       
3 root      20   0       0      0      0 S   0.0  0.0   0:00.10 ksoftirqd/0                                                                                                                                    
5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H   
....

扫视工具

$ glances
Glance - Linux系统监控工具
HowToing (LinuxMint 18 64bit / Linux 4.4.0-21-generic)                                                                                                                                               Uptime: 2:16:06
CPU      16.4%  nice:     0.1%                                        LOAD    4-core                                        MEM     60.5%  active:    4.90G                                        SWAP      0.1%
user:    10.2%  irq:      0.0%                                        1 min:    1.20                                        total:  7.70G  inactive:  2.07G                                        total:   3.73G
system:   3.4%  iowait:   2.7%                                        5 min:    1.16                                        used:   4.66G  buffers:    242M                                        used:    4.57M
idle:    83.6%  steal:    0.0%                                        15 min:   1.24                                        free:   3.04G  cached:    2.58G                                        free:    3.72G
NETWORK     Rx/s   Tx/s   TASKS 253 (883 thr), 1 run, 252 slp, 0 oth sorted automatically by cpu_percent, flat view
enp1s0     525Kb   31Kb
lo           2Kb    2Kb     CPU%  MEM%  VIRT   RES   PID USER        NI S    TIME+ IOR/s IOW/s Command 
wlp2s0        0b     0b     14.6  13.3 2.53G 1.03G  2957 howtoing      0 S 51:49.10     0   40K /usr/lib/firefox/firefox 
7.4   2.2 1.16G  176M  6265 howtoing      0 S  7:08.18     0     0 /usr/lib/Headset/Headset --type=renderer --no-sandbox --primordial-pipe-token=879B36514C6BEDB183D3E4142774D1DF --lan
DISK I/O     R/s    W/s      4.9   3.9 1.63G  310M  2459 howtoing      0 R  7:12.18     0     0 cinnamon --replace
ram0           0      0      4.2   0.2  625M 13.0M  2301 howtoing    -11 S  2:29.72     0     0 /usr/bin/pulseaudio --start --log-target=syslog
ram1           0      0      4.2   1.3 1.52G  105M  6220 howtoing      0 S  3:42.64     0     0 /usr/lib/Headset/Headset 
ram10          0      0      2.9   0.8  409M 66.7M  6240 howtoing      0 S  2:40.44     0     0 /usr/lib/Headset/Headset --type=gpu-process --no-sandbox --supports-dual-gpus=false --gpu-driver-bug-workarounds=7,2
ram11          0      0      2.9   1.8  531M  142M  1690 root         0 S  6:03.79     0     0 /usr/lib/xorg/Xorg :0 -audit 0 -auth /var/lib/mdm/:0.Xauth -nolisten tcp vt8
ram12          0      0      2.6   0.3 79.3M 23.8M  9651 howtoing      0 R  0:00.71     0     0 /usr/bin/python3 /usr/bin/glances
ram13          0      0      1.6   4.8 1.45G  382M  3272 howtoing      0 S  6:25.30     0    4K /opt/google/chrome/chrome 
...

这些工具显示的负载平均值读取/ proc / loadavg文件,您可以使用cat命令查看如下所示的负载平均值:

$ cat /proc/loadavg
2.48 1.69 1.42 5/889 10570

要以图形格式监视负载平均值,请查看: ttyload - 显示终端中Linux负载平均值的颜色编码图

在台式机上,有图形用户界面工具可以用来查看系统负载平均值。

了解CPU关系数量的系统平均负载

我们不可能解释系统负载或系统性能,而不会影响CPU内核数量对性能的影响。

多处理器Vs多核

  • 多处理器 - 将两个或多个物理CPU集成到单个计算机系统中。
  • 多核处理器 - 是单个物理CPU,它具有并行工作的至少两个或更多个独立的内核(或我们也可以称为处理单元)。 意思是双核具有2个两个处理单元,四核具有4个处理单元等。

此外,还有一种处理器技术,首先由英特尔引入改进并行计算,称为超线程。

在超线程下,单个物理CPU内核显示为操作系统的两个逻辑CPU核心(但实际上,有一个物理硬件组件)。

请注意,一个CPU核心一次只能执行一个任务,因此诸如多CPU /处理器,多核CPU和超线程等技术已经开始生效。

使用多个CPU,可以同时执行多个程序。 现在的英特尔®CPU使用了多核和超线程技术的组合。

要查找系统上可用的处理单元数量,我们可以使用nproc或lscpu命令 ,如下所示:

$ nproc
4
OR
lscpu

使用grep命令查找处理单元数量的另一种方法如图所示。

$ grep 'model name' /proc/cpuinfo | wc -l
4

现在,为了进一步了解系统负载,我们将采取几点假设。 假设我们的负载平均值如下:

23:16:49 up  10:49,  5 user,  load average: 1.00, 0.40, 3.35
在一个核心系统上,这意味着:
  • 平均使用CPU(100%); 在过去1分钟内,1个进程在CPU(1.00)上运行。
  • CPU平均闲置60% 在过去5分钟内没有进程等待CPU时间(0.40)。
  • CPU平均超载235%; 过去15分钟内有2.35个进程正在等待CPU时间(3.35)。
在双核系统上,这意味着:
  • 一个CPU平均100%空闲,一个CPU正在使用; 在过去1分钟内没有进程正在等待CPU时间(1.00)。
  • CPU平均闲置160%; 没有进程等待CPU时间。 (0.40)过去5分钟。
  • CPU平均超载了135%; 1.35进程正在等待CPU时间。 (3.35)过去15分钟。

你可能还喜欢:

  1. 20命令行工具来监视Linux性能 - 第1部分
  2. 13 Linux性能监控工具 - 第2部分
  3. Perf-用于Linux的性能监视和分析工具
  4. Nmon:分析和监控Linux系统性能

总之,如果您是系统管理员,那么高负载平均值是真正的担心。 当CPU高度高于CPU内核数量时,这表示对CPU的需求量很大,而且低于CPU内核的低负载平均值告诉我们CPU没有被充分利用。