10.1 使用w查看系统负载
W/uptime 查看系统负载
[root@localhost ~]# w
20:05:47 up 0 min, 1 user, load average: 0.26, 0.06, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.126.1 20:05 3.00s 0.02s 0.01s w
输出结果第一行
20:05:47 up 0 min, 1 user, load average: 0.26, 0.06, 0.02
时间 系统运行时间,登陆用户用户数,平均负载
最应该关注的是 load average 0.26, 0.06, 0.02
第1个数字表示1分钟内系统的平均负载值(合理的值是不高于有几颗物理cpu数值);第2个数值表示5分钟系统的平均负载值;第3个数值表示15分钟系统的平均负载值
如何查看服务器有几个cpu
Cat /proc/cpuinfo 或则更直接 grep -n 'processor' /proc/cpuinfo
这里计算是从‘0’开始
10.2 vmstat命令
当w返回的load average的值大于cpu的个数时 用如下命令查看
Procs 显示进程的相关信息
1)procs 显示进程相关信息
r :run表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
b :block表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了,一般b的值很高r的值不会小;
2)memory 内存相关信息
swpd :表示切换到交换分区中的内存数量 ,当内存不够的时候才会用swpd,而且当这个值变化很大的时候,说明交换分区和内存在频繁的交换数据说明内存不足;
free :当前空闲的内存数量;
buff :缓冲大小,(即将写入磁盘的);
cache :缓存大小,(从磁盘中读取的);
3)swap 内存交换情况
si :由交换区写入到内存的数据量,当swpd频繁的改变这个数值也不会小;
so :由内存写入到交换区的数据量,当swpd频繁的改变这个数值也不会小;
4)io 磁盘使用情况
bi :从块设备读取数据的量(读磁盘);
bo: 从块设备写入数据的量(写磁盘);
5)system 显示采集间隔内发生的中断次数
in :表示在某一时间间隔中观测到的每秒设备中断数;
cs :表示每秒产生的上下文切换次数;
6)CPU 显示cpu的使用状态
us :显示了用户下所花费 cpu 时间的百分比,当这个值长时间大于50,说明系统资源不足;
sy :显示系统花费cpu时间百分比;
id :表示cpu处于空闲状态的时间百分比;
us+sy+id=100%
wa :表示I/O等待所占用cpu时间百分比,这个值如果很大表示cpu不够用;
st :表示被偷走的cpu所占百分比(一般都为0,不用关注);
以上所介绍的各个参数中,经常会关注r列,b列,和wa列,三列代表的含义在上边说得已经很清楚。IO部分的bi以及bo也是要经常参考的对象。如果磁盘io压力很大时,这两列的数值会比较高。另外当si, so两列的数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。
10.3 top命令
用于动态监控进程所占的系统资源,每隔3秒变一次
Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
85个进程 1个在跑 84个在休眠 0个停止 0个僵尸进程(主进程被意外终止了,子进程就会留下来)
内存使用情况
KiB Mem : 999696 total, 741188 free, 117472 used, 141036 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 719588 avail Mem
内存使用情况,一个是内存,一个交换分区,单位KB
%Cpu(s): 0.0 us这个数值,cpu高负荷运转的话,会减少cpu使用寿命,百分之60 的时候就要注意点了。
RES :进程所占用物理内存大小
%MEM 使用内存的百分比
q退出,数字1显示所有核CPU
在top状态下,按shift+m可以按照内存使用的大小来排序,按数字1可以列出所有核CPU的使用状态,按q可以退出top
10.4 sar命令
sar 命令很强大,它可以监控系统所有资源状态,比如平均负载、网卡流量、磁盘状态、内存使用等等。它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。如果你系统没有安装这个命令,请使用 yum install -y sysstat 命令安装。初次使用sar命令会报错,那是因为sar工具还没有生成相应的数据库文件(时时监控就不会了,因为不用去查询那个库文件)。它的数据库文件在 “/var/log/sa/” 目录下,默认保存一个月
1)查看网卡流量 sar -n DEV
这个命令会把大田记录的网卡信息打印出来,每隔10分钟记录一次。IFACE这一列表示设备名称,rxpck/s表示每秒接收的数据包的数量(如果数据包上万则不正常,首先要排除复制数据以及用抓包工具查看。),txpck/s表示每秒发送出去的包的数量(大于5百万),rxkb/s 每秒收取的数据量(单位为KB)txkb/s表示每秒发送的数据量
sar -n DEV 1,5
每一秒执行一次共执行5次。
另外也可以用-f查看某一天的网卡流量历史命令如下
sar -n DEV -f /var/log/sa/sa06
ls /var/log/sa 在这个路径下会有sa开头 和sar开头的 两个文件 其中sa开头的文件时二进制文件 只能通过sar来访问 而 sar开头的文件是文本文件可以用cat访问,而且sar文件是在第二天生成的。
sar -q 查看负载
sar -q -f /var/log/sa/sa 查看某一日的负载
Sar -b 查看磁盘读写
10.5 nload命令
首先安装
yum install -y epel-release
yum install -y nload 安装完成以后直接执行
nload
最上面一行为网卡的名字以及IP地址,按向左或向右方向键可以查看其他网卡的网络流量
Incoming为进入网卡的流量,outgoing为网卡的输出流量
我们主要看curr那行数据,不能大于带宽