10.1 使用w查看系统负载
使用w命令查看当前系统的负载
其中:
1- 20:12:14表示系统时间
2- up 21min 表示系统已开机运行时间
3 - 3 users 表示当前有3个用户登录 (远程登录为pts/* 虚拟机终端登录为tty*)
4 - FROM 从哪里的来(远程IP地址)
5 - 最应该关注这3个数值 load average: 0.00, 0.01, 0.05
第一个数值表示1分钟内系统的平均负载值
第二个数值表示5分钟内
第三个数值表示15分钟内
6 - LOGIN@ 下面的时间表示什么时候登录的
7 - IDLE 表示空闲时间重点关注第一个值,它表示单位时间内使用cpu的活动进程数(1分钟内),值越大说明服务器压力越大。
最好是不要超过服务器的逻辑CPU数量
查看服务器有几个逻辑cpu ,使用命令cat /proc/cpuinfo查看
重点关注processor后面的数字
0表示拥有1颗
1表示拥有2颗
39表示有40颗
例:processor后面的数字是8 那么load average后第一个值大于8表示系统中有等待排队的进程。
查看有几个物理CPU时,则需要查看
physical id后面的数字
- 命令uptime也可以查看到w命令的第一行内容,当然还是要使用w命令查看比较详细
10.2 vmstat命令
- 当系统负载值偏高时,说明CPU不够用了,这时要知道都有哪些任务在使用cpu
用vmstat命令监控系统的状态
vmstat 1 表示每一秒钟动态显示一次
- vmstat 1 10 表示每一秒钟显示一次,一共显示10次
重点关注一下 r 、b、 si、 so、 bi、bo、us、wa这几列信息。
1 . procs 显示进程的相关信息
r(run):表示运行或等待CPU时间片的进程数,实际上某一时刻1个CPU只能有一个进程占用,其他进程只能排队等待使用,而这些排队等待CPU资源的进程依然是运行状态。如该数值长期大于服务器逻辑CPU的个数,则说明CPU资源不够用了。
b(block):表示等待资源的进程数,这个资源指的是I/O、内存等。或者说被CPU以外的资源所阻断,处于等待状态。该数值如果长时间大于1,需要关注一下了。
2 . memory显示内存的相关信息
swpd:当内存空间不够时,可以将内存中的部分数据临时放在swpd里面去。如果该数字不变,那还好,如该数字频繁的变化,那说明内存与spwd在频繁的交换数据,那说明内存不够用了。
3 . swap 显示内存的交换信息。
如果swpd有变动,那么si so 也会有变化。
si 表示由spwd交换分区写入内存的数据量,单位为KB
so 表示由内存写入spwd交换分区的数据量,单位为KB
4 . io 显示磁盘的使用情况
bi 表示从磁盘里出来进入到内存里去的数据量(读磁盘),单位为KB
bo 表示从内存里出来,再进入到磁盘里去的数据量(写磁盘),单位为KB。 如果该2个数字很大,说明磁盘在频繁的读写,那么肯定会造成procs下的b数值增加。进程等待磁盘
5 .system显示采集间隔内发生的中端次数。
6 . cpu显示cpu的使用状态。
-us 表示用户运行系统上的服务所占用cpu的时间百分比
如果长时间大于50,说明系统资源不足。
-sy 表示系统本身所占用CPU的时间百分比
-id 表示CPU处于空闲状态的时间百分比。
百分之us+百分之sy+百分之id=100%
-wa 表示I/O等待所占用cpu的时间百分比 ,与b相似。如果这一列数值较大,说明cpu不够用
通过该命令显示的内容可以知道在系统的瓶出现在哪里,及时的处理。
10.3 top命令
用top命令显示进程所占的系统资源
例如 知道是内存不够,磁盘读写太高,但是不知道具体是哪一个进程的问题,那我们可以使用top命令来查看。
每3秒钟一次动态显示 把占用系统资源最高的的进程放在最前面。
第一列是系统负载的信息
第二列
total表示有多少个任务
running表示有多少个正在运行的任务
sleeping表示多少个任务是
处于sleeping状态
stopped表示有多少任务停止
zombie表示有多少个僵尸进程(主进程被意外终止,留下了一些子进程,被遗弃)- 第三列 cup百分比
%us+%sy+%id=100%
st指的是被偷走的CPU百分比。当服务器做了些虚拟化,那么(子机)虚拟机有可能会偷走一部分cpu的资源。
主要关注的是%us
它与系统负载不一样
系统负载可以很高,但是%us不一定会很高,因为有进程处于等待状态,并不都是在running状态。
%us很高那么系统负载肯定也会很高。
Kib Mem主要关注 (物理内存)
依次为总共内存大小→剩余多少→使用了多少→最后暂可不用了解RES是指进程所占物理内存大小 单位KiB
%cpu 使用最高的排前面
%MEN(内存)是指使用内存的百分比.
可以按M来进行使用内存最多的排序
按P键会使用%CPU来排序
按数字1 可以列出所有cup百分比的使用情况,未按数字1的话,查看的是CPU的平均值
- 退出top
按q键 - top -c
查看具体进程的命令的全局路径 - top -bn1
可以一次性输出所有信息而非动态显示,适合在写脚本时使用 PID
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME
10.4 sar命令
- 用sar命令监控系统状态
1.sar命令很强大,它可以监控系统所有资源的状态。
2 . 不能使用sar命令,需要安装包 →yum install -y sysstat
3 .初次安装使用sar 会报错
因为sar 命令不加具体的选项和参数会去调用系统里面保留的历史文件,/var/log/sa就是保存的sar生成的历史文件的目录。sar的特性每10分钟会把系统的状态保存一份到该目录下。
- 查看网卡流量
- sar -n DEV 1 5 (每一秒显示一次 共5次)
第一行表示时间
第二行表示网卡名
第三行表示接收到的数据包 用个表示
第四行表示发送出的数据包 用个表示
第五行表示接收到的数据量 单位KB
第六行表示发送出的数据量 单位KB
后3 行不用关注
重点关注
rxpck/s →接收到数据包的数量 数据包上万或者几十万就不太正常,可能被攻击。
rxkB/s→接收到数据量
- 再次运行sar就不会在报错了,因为已经有文件写入到了/var/log/sa/目录下
查看指定日期的历史数据
现在没有数据。所以显示是这样的。这个目录下的历史数据最多保留一个月。也可以使用sar 查看系统负载
sar -b 查看磁盘
10.5 nload命令
该命令也是查看网卡流量
- 安装包→ yum install epel-release(先安装这个才能安装后面这个) →yum install -y nload
- 安装完成后直接执行nload命令会动态的显示网卡实时速度的页面
第一行显示网卡名字及IP地址
后面(1/2)表示有2块网卡 按→方向键可以查看第2块网卡
Curr 表示当前值
Avg 表示平均值
Min 表示最小值
Max 表示最大值
按q键退出
- 通常情况下买的带宽指的是发送出去的带宽(Outgoing)
如果有攻击那么incoming的数值会很高
/var/log/sa/sa17 它是一个2进制文件 不能cat ,只能用sar -f 去加载它
- /var/log/sa/sar17 是可以用cat查看的