10.1 使用w查看系统负载linux
10.2 vmstat命令shell
10.3 top命令服务器
10.4 sar命令网络
10.5 nload命令ui
10.1 使用w查看系统负载:blog
~1. w/uptime 查看系统负载排序
load average: 0.97, 0.28, 0.09进程
每段表示一分钟、五分钟、十分钟系统负载的值是多少,该数值跟cpu有关系,单位时间段内,使用cpu活动的进程有多少个内存
第一段表示(咱们常常会看第一段,他表明系统当前的负载状况),一分钟内使用cpu活动的进程有多少个,这是一个平均值。0.00表示系统空载,这样的就有点资源浪费。那么表示多少最理想呢,要看他的逻辑cpu数量,使用下面的 cat /proc/cpuinfo来看,看第一段 processor : 0,o表示只有一颗逻辑cpu,1表示2颗,以此类推。资源
因此,假若有8颗逻辑cpu,那么他最理想的值就是不高于8.
第一段,第二段同理。分别表明五分钟,十五分钟的负载值
uptime 可查看 w 命令后的第一段,日常咱们用 w 看就能够了
~2. cat /proc/cpuinfo 查看cpu核数
主要看第一段 processor : 0,表明逻辑cpu数,咱们一般只考虑逻辑cpu就能够了,不用考虑物理cpu。由于物理cpu又会分为几核,与逻辑cpu数量
实例:
1.
[root@axinlinux-01 ~]# w
12:38:57 up 0 min, 1 user, load average: 0.97, 0.28, 0.09
系统时间 启动多少分钟 目前登陆几个用户 关键,系统负载 每段表示一分钟、五分钟、十分钟系统负载的值是多少
该数值跟cpu有关系,单位时间段内,使用cpu活动的
进程有多少个
登陆的用户
可从下面看到
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
用户是谁 登陆的终端 地址 登陆的时间 空闲了多长时间 使用cpu的时间,不用关注 命令
root pts/0 192.168.159.1 12:38 1.00s 0.11s 0.03s w
[root@axinlinux-01 ~]# date
2018年 07月 10日 星期二 12:39:20 CST
[root@axinlinux-01 ~]# uptime
13:05:33 up 27 min, 1 user, load average: 0.00, 0.01, 0.05
2.
[root@axinlinux-01 ~]# cat /proc/cpuinfo
processor : 0 一般主要看这一行,表明多少逻辑cpu,0表示只有1个,5表示有6个。以此类推
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i3 CPU M 350 @ 2.27GHz
--
-
----------------------------------------------------------------------------------------------------------------------------------------------------
10.2 vmstat命令:
若是负载值大于cpu核数了,就表示cpu不够用了。这个时候就要想是什么缘由致使的cpu不够用,这个时候个人进程在干什么,都有哪些任务在使用个人cpu。可能进一步的去想系统的瓶颈在哪里。因此咱们会用到vmstat
~1. vmstat 监控系统状态
~ 用法 vmstat 1
1表示每一秒钟动态显示一次
也可 vmstat 1 5表示,每一秒钟动态显示一次,共显示5次
~2. 关键的几列: r,b,swpd,si,so,bi,bo,us,wa
· r即run的简写,表示有多少个进程处于run的状态
假如只有一个cpu,而且有十个进程。就必需要排队,等待cpu分配资源。由于某一个时刻只能有一个进程使用cpu,也就是说等排队轮到你的时候,才能到你来使用cpu。不过是循环的,等下一次循环能够再次使用cpu。
因此。只要是在排队状态,他就是r的状态
· b即block的简写,表示被cpu之外的资源,好比被硬盘、网络等给阻断了,处于一个等待状态(可理解为卡死了)
假如要给这个进程分配一个数据包。可是网速太慢,原本只须要1秒,结果用了10秒,因此就只能等网速了,这个就是有多少个进程在等待
· swpd以前有讲,当内存不够的时候,可临时把数据放在swap空间里面去。因此要关注这个数字,当这个数字不变的时候还好,没有关系。若是这个数字变的时候,一会多了一会少了,那就说明,交换分区和内存在频繁的交换数据,那么,就只有一个说明一个结果,就是你的内存不够了
· si so与swpd是有关联的,若是swpd这一列在频繁的变,那si so也是存在数字变动的
si即为in,表示有多少个数字,有多少的块。单位是KB。有多少KB的数字,进入到内存中
so即为out,表示从内存里出来的
si so他们的参照物都是内存,分别表明有多少是从内存里进去的,有多少是从内存了出来的
· bi bo是跟磁盘有关系的
bi表示从磁盘里出来,进入到内存里面去。也就是读,读的数据量有多少
bo表示写,写入到磁盘里面去
若是这个两个数字很大的话,表明磁盘在频繁的读写。也会形成 b 列增长,由于会形成不少进程在等待。这是在变的
· us即为user,表示用户级别的,用户占用是多少。这个数字不会超过100,由于是百分比
用户的一些资源,占用了cpu的百分比。若是这个数字长时间大于50,就说明系统资源不够了
· sy表示系统,系统自己的进程或服务。所占用的cpu的百分比
` id表示空闲
·· us+sy+id等于一百,是这样的百分比
· wa表示等待,跟 b 是有点相似的。是等待cpu的百分比。若是这一列很大,表明cpu不够
实例:
1.
[root@axinlinux-01 ~]# vmstat
procs -----------memory---------- ---swap-- ----- io---- -system-- ------cpu-----
内存 虚拟磁盘/交换分区 磁盘 系统进程
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1595568 2076 155768 0 0 27 1 43 41 0 0 99 1 0
[root@axinlinux-01 ~]# vmstat 1 按ctrl+c结束
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1595468 2076 155800 0 0 24 1 41 38 0 0 99 0 0
0 0 0 1595452 2076 155800 0 0 0 0 67 52 0 1 100 0 0
0 0 0 1595452 2076 155800 0 0 0 0 46 42 0 0 100 0 0
0 0 0 1595452 2076 155800 0 0 0 0 46 38 0 0 100 0 0
0 0 0 1595452 2076 155800 0 0 0 0 106 77 1 1 99 0 0
0 0 0 1595452 2076 155800 0 0 0 0 45 38 0 0 100 0 0
0 0 0 1595452 2076 155800 0 0 0 0 39 32 0 0 100 0 0
^C
[root@axinlinux-01 ~]# vmstat 1 5 显示五行自动中止
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1595468 2076 155800 0 0 23 1 41 38 0 0 99 0 0
0 0 0 1595452 2076 155800 0 0 0 0 112 79 0 0 100 0 0
0 0 0 1595452 2076 155800 0 0 0 0 98 72 0 0 100 0 0
0 0 0 1595452 2076 155800 0 0 0 0 79 61 0 0 100 0 0
0 0 0 1595452 2076 155800 0 0 0 0 42 36 0 0 100 0 0
----------------------------------------------------------------------------------------------------------------------------------------------------
10.3 top命令:
如上所知,w是查看系统负载,vmstat是查看/监控系统状态。
那么咱们能不能知道具体哪一个进程呢,因此这时候就用到了top
~1. top 查看进程使用资源状况
三秒钟显示一次,动态的
· 第一行跟 w 查看的是同样的
· 第二行,有多少个total(进程)。
有多少处于r状态,多少个处于sleeping状态(休眠),也不是永久休眠,多是暂时休眠。
有多少stopped。有多少zombie(僵尸状态),好比主目录被删除,只留下了子文件,也没人管他了
· 第三行,cpu占用状况。
一样us+sy+id等于百分百
常常关注us,长时间在60%以上,对cpu很差。cpu风扇长时间再转,就表明cpu处于工做状态
若是us百分比很高,那么系统负载就会很高。由于us百分比高了,其余的进程过来就得排队,就会形成系统负载增高
st表明被偷走了的cpu百分比。若是服务器作了一些虚拟化,他会有一些虚拟机颇有可能会偷走一部分cpu
· 第四行第五行表示内存使用状况。
Kib Mem表示物理内存。Kib swap表示交互分区
基本上只会关注Kib Mem,total(总共内存)有多大,还有多少free(剩余内存),使用了多少(used)
下面的是咱们重点须要去关注的,
%cpu和%Mem(内存)会以百分比的多少来进行排序,占比多的排在上面
RES是物理内存大小(单位是KB)
~ top -c 显示详细的进程信息
可显示这个进程的据对路径
~ top -bn1 静态显示全部进程
一次性的列出全部的进程,适合在写shell脚本时用到
~ q 退出,数字1显示全部核cpu,大写字母M按内存使用排序
按字母 q 退出top
按大写的M是切换内存排序。按大写的P是按cpu排序
按数字 1 能够显示全部的CPU占比状况,在上面
~ 大写字母P按cpu使用排序
~pid可理解为这个进程的序号,使用 q+pid 能够杀死这个进程
实例:
1.
[root@axinlinux-01 ~]# top
top - 14:12:18 up 1:34, 1 user, load average: 0.00, 0.01, 0.05 第一行,跟w查看的是同样的
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie 第二行
总共进程 多少在运行的 多少休眠的 多少中止的 多少僵尸的
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 第三行
us(用户使用)+sy(系统使用)+id(空闲)=100% st表示被偷走的
KiB Mem : 1875504 total, 1589060 free, 123584 used, 162860 buff/cache 第四行(一般会关注)
物理内存 总共多少大 还剩多少 使用了多少
KiB Swap: 1999868 total, 1999868 free, 0 used. 1575888 avail Mem
交换分区
如下为之后主要关注的
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
RES 物理内存大小(单位KB)
112 root 20 0 0 0 0 R 0.3 0.0 0:01.95 kworker/1:2
512 root 20 0 305408 6372 4924 S 0.3 0.3 0:04.20 vmtoolsd
874 root 20 0 562432 16580 5912 S 0.3 0.9 0:00.88 tuned
1 root 20 0 128208 6844 4080 S 0.0 0.4 0:02.42 systemd
----------------------------------------------------------------------------------------------------------------------------------------------------
10.4 sar命令:
sar命令是很是全面的分析系统的命令
主要来查看网卡的流量,也能够查看内存或磁盘的状态。
sar被人们称做linux里面的瑞士军刀,也就是说内容很是复杂,功能很是丰富
要安装,yum install -y sysstat
直接运行sar,不加任何的参数,会报错。由于直接sar,他会去调用默认的历史文件(/var/log/sa)
sar的特性,他会每十分钟,会把系统的状态过滤一遍,抓取保存在文件里。这个文件就存在这个目录里
~1. sar -n DEV 网卡流量
sar -n DEV 1 动态显示网卡流量
sar -n DEV 1 10 动态显示网卡流量10次
rxpck/s 接收到的数据包(单位是数字,多少个)
txpck/s 发出去的数据包 (单位是数字,多少个)
rxkB/s 接受的数据量(单位是KB,多少许)
txkB/s 发出去的数据量(单位是KB,多少许)
后面三个不用管,不会超过0
接受的数据包,和接受的数据量多少算正常呢,几千个数据包都算正常,上万的话不正常(表明被攻击了)
下图为正常服务器的数据量或数据包的接收量
~2. sar -q 系统负载
一般会用到这个命令查看历史数据
~3. sar -b 磁盘读写
查看读和写
~4. sar -f /var/log/sa/saxx 历史文件
-f指定查看那个文件,或想看哪一天的
是个二进制文件,只能用sar -f看。不能cat
后面的xx表明那天生成的历史文件。这个目录下,最多保留一个月,咱们要找哪天就写几号就能够了
/var/log/sarxx 历史文件
sarxx文件是能够cat的。这是与saxx文件的区别
实例:
1.
[root@axinlinux-01 ~]# sar -n DEV 1 10
Linux 3.10.0-693.el7.x86_64 (axinlinux-01) 2018年07月10日 _x86_64_ (2 CPU)
23时06分16秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
接收或发出去的数据包(以数字显示) 接收或发出去的数据量(以KB显示)
23时06分17秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
23时06分17秒 ens33 0.00 0.00 0.00 0.00 0.00 0.00 0.00
23时06分17秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
23时06分18秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
23时06分18秒 ens33 1.00 1.00 0.06 0.41 0.00 0.00 0.00
----------------------------------------------------------------------------------------------------------------------------------------------------
10.5 nload命令:
~. yum install -y epel-release 要先安装epel-release
~. yum install -y nload 再安装nload
~1. 直接敲nload就会显示实时的监控网卡的界面。一个页面显示一个网卡,按向右的方向键可切换城下一个
~ 按 q 退出。
小知识点:
咱们讲带宽的时候,一般说的是出去的带宽(outgoing)
假如咱们买的带宽是100MB的,outgoing的curr都七八十兆了,就表明带宽快满了
假若有攻击的话,进来的数字(incoming)就会很大,看curr就会看的到
实例:
1.
[root@axinlinux-01 ~]# nload
Device ens33 [192.168.159.128] (1/2):
网卡的名字 地址 表示两个,按向右的方向键可切换
=====================================================================================================================================
Incoming:
进来的
Curr: 1.01 kBit/s 当前值
Avg: 1.21 kBit/s 平均值
Min: 1.01 kBit/s 最小值
Max: 2.17 kBit/s 最大值
Ttl: 9.25 MByte
Outgoing:
出去的
Curr: 8.70 kBit/s
Avg: 8.62 kBit/s
Min: 4.64 kBit/s
Max: 9.88 kBit/s
Ttl: 2.86 MByte