监控系统状态 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