监控系统状态 w

涉及概念如下:
w/uptime 查看系统负载
cat /proc/cpuinfo 查看cpu核数
用法 vmstat 1
关键的几列: r , b , swpd , si , so , bi , bo , us ,wa
top 查看进程使用资源情况
top -c 显示详细的进程信息
top -bn1 静态显示所有进程
q 退出,数字1显示所有核cpu,大写字母M按内存使用排序
大写字母P按CPU使用排序

w查看系统负载,具体操作如下:

[root@localhost ~]# w #查看系统负载
 21:59:48 up 1 day,  7:20,  2 users,  load average: 0.01, 0.02, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.139.1    254月18 10days  0.35s  0.35s -bash
root     pts/1    192.168.139.1    21:51    4.00s  0.02s  0.00s w
# up 1 day 表示启动的时间 ; 
2 users 登陆了几个用户;
 load average: 0.01, 0.02, 0.05 系统负载  三个数值表示 1分钟 5分钟 15分钟

  • 查看系统系统时间 [root@localhost ~]# date 2018年 05月 07日 星期一 22:58:19 CST

如何查看自己系统有几个CPU(逻辑CPU),cat /proc/cpuinfo

	processor 如果是0 代表一个, 如果是1 代表2个。 逻辑CPU。

用vmstat命令监控系统的状态

	[root@localhost ~]# vmstat 
	procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
	 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
	 2  0      0 461084   2076 422508    0    0     2     2   41   40  0  0 100  0  0
	 重点关注r b和wa这三列。

	procs 显示进程的相关信息:
	r  (run) 表示运行或等待CPU时间片的进程数;
	b (block) 表示等待资源的进程数;

	memory显示内存的相关信息:
	swpd 表示切换到交换分区中的内存数量,单位为KB;
	free 表示当前空闲的内存数量,单位为KB;
	buff 表示(即将写入磁盘的)缓冲大小,单位为KB;
	cache 表示(从磁盘中读取的)缓存大小,单位为KB;

	swap显示内存的交换情况:
	si  表示由交换区写入内存的数据量,单位为KB;
	so 表示由内存写入交换区的数据量,单位为KB;

	io显示内存的使用情况:
	bi  表示从块设备读取数据的量(读磁盘),单位为KB;
	bo 表示从块设备写入数据的量(写磁盘),单位为KB;

	system显示采集间隔内发生的中断次数:
	in 表示在某一时间间隔内观测到的每秒设备的中断词数
	cs 表示每秒产生的上下文切换词数

	cpu显示CPU的使用状态:
	us 显示用户下所花费CPU的时间百分比;
	sy 显示系统花费CPU的时间百分比;
	id 表示CPU处于空闲状态的时间百分比;
	wa 表示I/O等待所占用CPU的时间百分比;
	st 表示被偷走的CPU所占百分比(一般都为0,不用太关注)

vmstat的使用方法

  • 静态显示内存状态一次 [root@localhost ~]# vmstat
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 461240 2076 422516 0 0 2 2 41 40 0 0 100 0 0

  • vmstat [n] 这里n表示数字,每个n秒输出一次状态,例如1秒,示例如下: [root@localhost ~]# vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 461244 2076 422516 0 0 2 2 41 40 0 0 100 0 0 0 0 0 461228 2076 422516 0 0 0 0 45 44 0 0 100 0 0 0 0 0 461228 2076 422516 0 0 0 0 50 41 0 1 99 0 0 #这里会不断的刷新,CTRL+c结束命令

  • vmstat [n] [m] 这里n表示数字,每个n秒输出一次状态,m代表显示的次数,例如显示5次,示例如下:

[root@localhost ~]# 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
 2  0      0 461244   2076 422516    0    0     2     2   41   40  0  0 100  0  0
 0  0      0 461228   2076 422516    0    0     0     0   43   41  0  0 100  0  0
 0  0      0 461228   2076 422516    0    0     0     0   50   46  0  0 100  0  0
 0  0      0 461228   2076 422516    0    0     0     0   44   42  0  0 100  0  0
 0  0      0 461228   2076 422516    0    0     0     0   56   50  1  0 99  0  0
[root@localhost ~]# 

top显示进程所占的系统资源

	概念:
	top命令用于动态监控进程所占的系统资源,每个三秒发生一次变化;
	他的特点是把占用系统资源 CPU 内存 磁盘I/O等 最高的进程放到最前面;
	如下列中可以打印出很多的信息,包括系统负载(load average) ,进程数(Tasks),
	CPU使用情况,内存使用情况以及交换分区使用情况。
	top 查看进程使用资源情况
	top -c 显示详细的进程信息,全局路径
	top -bn1 静态显示所有进程,列出所有信息
	q退出,数字1显示所有的cpu,大写字母M按内存使用排序
	大写字母P按CPU使用排序

	top内容:
	Tasks 总共由多少进程;
	running 其中有几个在运行;		
	sleeping 多少进程正在休眠;
	stopped 由多少个进程以及停止了;
	zombie 僵尸,如进程关了,下面的子进程没有结束的被称为僵尸。

[root@localhost ~]# top
top - 23:38:28 up 1 day,  9:53,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  84 total,   1 running,  83 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1008152 total,   460452 free,   122652 used,   425048 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   693196 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                          
44028 root      20   0       0      0      0 S  0.3  0.0   0:07.98 kworker/0:0                      
44191 root      20   0       0      0      0 S  0.3  0.0   0:00.01 kworker/0:2                      
    1 root      20   0  128164   6820   4056 S  0.0  0.7   0:02.23 systemd                          
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd                         
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.56 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.00 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:01.29 rcu_sched                        
   10 root      rt   0       0      0      0 S  0.0  0.0   0:01.26 watchdog/0                       
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                        
   13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns  

sar 命令监控系统状态

分析系统状态,可查看网卡流量

	概念:
	它可以监控系统几乎所有资源的状态,比如:平均负载,网卡流量,磁盘状态,内存等;
	它可以打印历史信息,可以显示当天从0点到当前的系统状态信息。
	选项:
	sar -n DEV 网卡流量
	sar -q 系统负载
	sar -b 磁盘读写
	sar -f /var/log/sa/saxx 历史文件所在目录,每十分钟会系统抓一遍

安装sar命令 sysstat
	[root@localhost ~]# yum install -y sysstat
sar -n DEV 网卡流量 ,示例如下:

rxpck 接受到的数据包量有多少,几千都是正常的,上万没准就被攻击了。
txpck 发送出去的数据包有多少
rxKB 接受到的数据量,单位是KB
txKB 发送出去的数据量有多少

nload命令 实时动态的网卡

安装两个源码包
	[root@localhost ~]# yum install -y epel-release
	[root@localhost ~]# yum install -y nload