《理解 Linux 的平均负载和性能监控》要点:
本文介绍了理解 Linux 的平均负载和性能监控,希望对您有用。如果有疑问,可以联系我们。
在本文中,我们将解释 Linux 系统中最症结的管理任务之一——关于系统 / CPU 的负载(load)和平均负载(Load average)的性能监控.
首先来看所有的类 UNIX 系统中两个紧张的表述:
Linux 中,平均负载一般指在内核运行队列中被标志为运行或不可打断状态的进程的平均数.
注意:
有诸多方式监测系统平均负载,如 uptime
,它会展示系统运行光阴、用户数量及平均负载:
平均负载的数字从左到右的寄义依次为:
高平均负载意味着系统是过载的:许多进程在期待 CPU 时间.
下一节将介绍平均负载和 CPU 核数的关系.此外,常用的对象 top 和 glances 可以实时显示 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.8id,4.6 wa,0.0 hi,0.0 si,0.0 st
KiBMem:8069036 total,388060 free,4381184 used,3299792 buff/cache
KiBSwap:3906556 total,3901876 free,4680 used.2807464 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6265 tecmint 200124434817068083616 S 13.32.16:47.72Headset
2301 tecmint 9-11640332133449932 S 6.70.22:18.96 pulseaudio
2459 tecmint 200170769231562862992 S 6.73.96:55.45 cinnamon
2957 tecmint 20026446441.035g137968 S 6.713.550:11.13 firefox
3208 tecmint 2005070605213633152 S 6.70.60:04.34 gnome-terminal-
3272 tecmint 2001521380391324178348 S 6.74.86:21.01 chrome
6220 tecmint 200159539210696476836 S 6.71.33:31.94Headset
1 root 20012005662043964 S 0.00.10:01.83systemd
2 root 200000 S 0.00.00:00.00 kthreadd
3 root 200000 S 0.00.00:00.10 ksoftirqd/0
5 root 0-20000 S 0.00.00:00.00 kworker/0:0H
....
$ glances
Glances – Linux系统监测对象:
TecMint(LinuxMint1864bit/Linux4.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 525Kb31Kb
lo 2Kb2Kb CPU% MEM% VIRT RES PID USER NI S TIME+ IOR/s IOW/s Command
wlp2s0 0b0b14.613.32.53G1.03G2957 tecmint 0 S 51:49.10040K/usr/lib/firefox/firefox
7.42.21.16G176M6265 tecmint 0 S 7:08.1800/usr/lib/Headset/Headset--type=renderer --no-sandbox --primordial-pipe-token=879B36514C6BEDB183D3E4142774D1DF--lan
DISK I/O R/s W/s 4.93.91.63G310M2459 tecmint 0 R 7:12.1800 cinnamon --replace
ram0 004.20.2625M13.0M2301 tecmint -11 S 2:29.7200/usr/bin/pulseaudio --start --log-target=syslog
ram1 004.21.31.52G105M6220 tecmint 0 S 3:42.6400/usr/lib/Headset/Headset
ram10 002.90.8409M66.7M6240 tecmint 0 S 2:40.4400/usr/lib/Headset/Headset--type=gpu-process --no-sandbox --supports-dual-gpus=false--gpu-driver-bug-workarounds=7,2
ram11 002.91.8531M142M1690 root 0 S 6:03.7900/usr/lib/xorg/Xorg:0-audit 0-auth /var/lib/mdm/:0.Xauth-nolisten tcp vt8
ram12 002.60.379.3M23.8M9651 tecmint 0 R 0:00.7100/usr/bin/python3 /usr/bin/glances
ram13 001.64.81.45G382M3272 tecmint 0 S 6:25.3004K/opt/google/chrome/chrome
...
这些对象中的平均负载是从 /proc/loadavg
文件中读取的,也可以直接使用 cat 命令查看:
$ cat/proc/loadavg
2.481.691.425/88910570
想要图形样式监测均匀负载,请戳:ttyload – 终端中颜色编码图形显示 Linux 均匀负载.
在桌面计算机中,可以使用图形用户接口对象查看系统平均负载.
考虑了 CPU 核心数的影响,能力解释系统负载.
此外,Intel 引入了超线程技术用来提高并行计算才能.
通过超线程技术,在操作系统中,单个物理 CPU 表示的和两个逻辑 CPU 一样.(实际在硬件上只有一个 CPU).
注意,单个 CPU 核同一时间只能执行一个任务,于是发生了多 CPU/处理器、多核 CPU,以及多线程技术.
多 CPU 时,多个法式可以同时执行.如今的 Intel CPU 使用了多核心和超线程技术.
可以使用 nproc 或 lscpu 命令查看系统中的处置器单元数量.
$ nproc
4
#或者
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 核心数意味着必要增加 CPU,反之则意味着 CPU 未被充分利用.
作者简介:
Aaron Kili 是 Linux 和自由软件的热心者,热衷于分享知识,现在是 TecMint 网站的内容创作者,不久之后将成为 Linux 系统治理员,web 开发者.
via: https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/
作者:Aaron Kili 译者:kylecao 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
本文永远更新链接地址:http://www.linuxidc.com/Linux/2017-06/145123.htm
维易PHP培训学院每天发布《理解 Linux 的平均负载和性能监控》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。