关于系统负载我要说的话

引言:平时系统运行缓慢,就会使用top、uptime、cat /proc/loadavgw等。查看系统负载。但是只是大概看下,感觉并不是很清楚每一项的含义,故再次做出整理。

[root@foundation58 kiosk]# uptime
 22:32:54 up 1 min,  2 users,  load average: 0.59, 0.23, 0.08

含义:

当前时间,系统已经运新的时间、当前系统用户数、过去:1min 5min 15min 的平均负载值

但是这个负载值又是啥意思嘞?表示CPU占有率?

待我慢慢道来。

1、关于系统负载和系统平均负载?

系统负载:它反映了系统繁忙程度,指的是当前正在被CPU执行和等待被CPU执行的进程数目总和

多核CPU情况下,完美情况是所有CPU都在使用,没有进程在等待处理,所以,load的理想值是CPU的数目。

平均负载:通过固定时间周期比如:1、5、15min计算出的平均的系统负载。

需要注意的是:

在Linux中平均负载指的是:内核运行队列中被标记为运行或不可打断的睡眠状态磁盘I/O进程ps可以看到的D状态的进程的平均数。

平均负载包含了正在使用CPU的进程,还包括等待I/O的进程。

  • CPU密集型进程,使用大量CPU会导致平均负载升高,此时两者是一致的。
  • I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高。
  • 大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高。

①那么可运行状态的进程又是啥嘞?“套娃套娃”

指正在使用CPU或者等待CPU的进程。平时我们PS就可以看到。

[root@foundation58 kiosk]# ps
  PID TTY          TIME CMD
 2399 pts/0    00:00:00 su
 2402 pts/0    00:00:00 bash
 2774 pts/0    00:00:00 ps

②不可中断状态的进程?

处于内核态关键流程中的进程,并且这些流程不可打断。

Eg:等待硬件的I/O响应,比如说ps可以看到的D(disk sleep)状态的进程。

Eg:当一个进程向磁盘读写数据是,为了保存数据的一致性,在得到磁盘的回复前,不能被其他进程或者中断打断,此时进程处于不可中断状态。

若被打断,就容易出现磁盘数据与进程数据不一致问题。

所以不可中断状态实质还是一种系统对进程和硬件设备的保护机制。

③平均活跃进程数?

直观的理解就是:单位时间内的活跃进程数。load=2时,在2cpu的系统上,意味着CPU刚好被占用。

平均最理想情况下负载的值就是CPU的数目。

2、负载值为多少比较合理?

①1min 5min 15min 三个值差别不大,说明系统负载很平稳

②如果1min远小于15min的值,说明最近1min内负载就在减小,过去15min负载比较大

③如果1min远大于15min的值,说明最近1min的负载在逐渐增加,这时候就要进行持续观察。一旦1min的平均负载接近或者超过了cpu的个数,就意味着系统正在发生过载的问题。

3、如何检测系统负载?

可以直接cat  /proc/loadavg 

或者通过命令查看Uptime、w、top

(1)、cat /proc/loadavg

[root@foundation58 kiosk]# cat /proc/loadavg
0.43 0.51 0.28 2/532 2821

内容说明:
0.43 0.51 0.28    //表示最近1分钟,5分钟,15分钟 系统的平均负载; 系统负载越高,代表CPU越繁忙;

2/532             //2代表此时运行队列中的进程个数;  532代表系统中进程的总数

2821              //代表到此为止创建的最后一个进程的ID.

(2)、uptime

[root@foundation58 kiosk]# uptime
 22:32:54 up 1 min,  2 users,  load average: 0.59, 0.23, 0.08

内容说明:

系统现在的时间
已经运行的时间
用户连接数
平均负载:过去1min 5min 15min 的系统平均负载

(3)、w(了解就可以哈)

[root@foundation58 kiosk]# w
 22:44:33 up 12 min,  2 users,  load average: 0.56, 0.54, 0.36
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
kiosk    :0       :0               22:32   ?xdm?   3:40   0.07s gdm-session-wor
kiosk    pts/0    :0               22:32    1.00s  0.09s  1.35s /usr/libexec/gn
说明:

用户名    终端号    远程主机名       登陆时间   空闲时间   

JCPU:和该终端(tty)连接的所有进程占用的时间,这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间                                                                                                                                                    

PCPU:指当前进程(即在WHAT项中显示的进程)所占用的时间   

WHAT:当前正在运行进程的命令行

(4)、top

[root@foundation58 kiosk]# top

top - 22:50:00 up 18 min,  2 users,  load average: 0.30, 0.43, 0.36
Tasks: 215 total,   1 running, 213 sleeping,   0 stopped,   1 zombie
%Cpu(s):  3.2 us,  1.4 sy,  0.0 ni, 95.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7868644 total,  5142088 free,  1422516 used,  1304040 buff/cache
KiB Swap:  7995388 total,  7995388 free,        0 used.  5953640 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
 2543 kiosk     20   0 3370248 508584 129140 S   8.7  6.5   2:18.70 Web Content
 2490 kiosk     20   0 3201832 349548 138960 S   3.0  4.4   1:17.64 firefox-bin
 1897 kiosk     20   0 1612020 130740  40884 S   2.3  1.7   0:32.21 gnome-shell
 1636 root      20   0  302816  48916  38948 S   1.0  0.6   0:20.54 Xorg       
 1950 kiosk      9 -11  694016  11552   7944 S   2.3  0.1   0:20.04 pulseaudio 
 1982 kiosk     20   0  470992   6768   3524 S   0.0  0.1   0:04.16 ibus-daemon
 2106 kiosk     20   0 1357724  39948  20264 S   0.0  0.5   0:02.96 nautilus   
 2338 kiosk     20   0  346828  14252   8116 S   0.0  0.2   0:02.48 ibus-engin+
    1 root      20   0  125380   3976   2432 S   0.0  0.1   0:02.45 systemd    
 2346 kiosk     20   0  723004  21272  13476 S   0.7  0.3   0:02.07 gnome-term+
 2193 kiosk     20   0  536868  13088   6180 S   0.0  0.2   0:01.70 tracker-st+
 2029 kiosk     20   0  569280   8052   5072 S   0.3  0.1   0:01.58 caribou    
  760 dbus      20   0   28280   3344   1396 S   0.0  0.0   0:01.54 dbus-daemon
 2124 kiosk     39  19 1185008 229112  10104 S   0.0  2.9   0:01.43 tracker-ex+
  788 root      20   0  512632  10144   6424 S   0.0  0.1   0:01.40 NetworkMan+
 1843 kiosk     20   0   26752   2020   1324 S   0.7  0.0   0:01.38 dbus-daemon
 2614 kiosk     20   0 2697560  71788  37328 S   0.0  0.9   0:01.32 WebExtensi+

分为两大部分:

第一部分:

top那一行:同uptime  w 

tasks行:任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务

CPU行:表示CPU整体信息。

字段字段释义
ususer: 运行(未调整优先级的) 用户进程的CPU时间
sysystem: 运行内核进程的CPU时间
niniced:运行已调整优先级的用户进程的CPU时间
ididle:空闲时间
waIO wait: 用于等待IO完成的CPU时间
hi处理硬件中断的CPU时间
si处理软件中断的CPU时间
st这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)

内存行:全部可用内存、已使用内存、空闲内存、缓冲内存

swap行:全部、已使用、空闲和缓冲交换空间

第二部分:各进程任务的状态监控

经常用到的参数:

PID: 进程ID                                                                     

S :进程状态:    

  • D - 不可中断的睡眠态。
  • R – 运行态
  • S – 睡眠态
  • T – 被跟踪或已停止
  • Z – 僵尸态

%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比,而不是整个cpu(N核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100

%MEM:进程时用的可用物理内存占的百分比

COMMAND:进程名 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值