使用w查看系统负载,vmstat 命令,sar命令,nload命令

使用w查看系统负载

  • 如图,使用 w 命令能够显示系统负载信息
  • 第一个时间是使用w命令时,系统当前的时间
  • 第二个时间,也就是up后面的时间,是系统运行了多长的时间
  • 这里是 9 days, 22:43 说明系统运行了9天22分钟
  • 2 users 表示有两个用户登陆了系统
  • load averagge 后面的三列数字表示系统负载的数值
  • 第一列是过去1分钟的平均负载,第二列是过去5分钟的平均负载,第三列是过去15分钟的平均负载
  • 好比每一个cpu有有一个默认负载极限
  • 过去一分钟实际运行的进程比默认的负载极限少
  • 那么 过去一分钟的进程数/极限进程负载数 就会小于 1
  • 若是过去一分钟的进程数等于极限进程负载数
  • 这两个值相除,就等于1
  • 若是1分钟内的进程数大于极限负载数,两个值相除,就会大于1
  • 这个值最好是 小于等于1,若是大于1,说明负载过高
  • 对于多核cpu负载极限也不一样
  • 好比,单核cpu负载极限是1,双核就是2,8核就是8
  • 负载极限是按照逻辑cpu来算的,而不是物理cpu
  • 想查看逻辑cpu数量,能够 cat /proc/cpuinfo
  • 如图,能够看 processor 这一行数据
  • 这里是 0 ,就表示有一个逻辑cpu
  • 这一行数据是从0开始的,实际上 0 就表示1个逻辑cpu
  • 若是这一行数值是7,那就表示有8个逻辑cpu
  • 这一行的数值加 1 就是逻辑cpu的个数
  • 因此 processor 这一行的值+1乘以1就是服务器的极限负载能力值
  • load average 小于或者等于这个值就说明服务器负载没有问题
  • 大于这个值说明实际负载大于服务器极限负载值
  • 使用 uptime 命令也能够查看系统负载信息,不过通常都使用 w

vmstat 命令

  • vmstat 能够查看当前系统cpu,磁盘,内存等的使用情况
  • 如图,使用命令 vmstat 能够查看一次当前情况
  • 若是想不断的更新使用情况,可使用 vmstat 1
  • 这样系统每过1秒,就会显示一次当前的系统使用情况
  • 也可使用 vmstat 1 5
  • 这条命令意思是 每秒显示一次信息,总共显示5次
  • 这样就能够看到接下来5秒的系统使用情况

  • vmstat 显示的信息主要分为几部分,经常使用部分有
  • procs 表明 cpu
  • memory 表明内存
  • swap 表明交换分区
  • io 表明磁盘
  • cpu cpu使用时间百分比

  • procs 下面有 r 跟 b 两列
  • r 是 run 的意思
  • 意思是cpu在处理的进程数量
  • 通常正在处理和等待处理的进程数量都在 r 显示
  • b 是 block 的意思
  • 下面是数值也是进程数量
  • 跟r的区别是,因为网络,或者磁盘等缘由卡死等待的进程数量
  • 会显示在这里,好比一个进程须要网络传输数据
  • 可是网络太慢,数据没有传输完成,致使cpu不能处理该进程
  • 这个进程就会进入等待,由于是网络卡致使的等待
  • 会显示在 b 这一列里面

  • memory下面的 swpd 是交换分区的意思
  • 若是内存不够用了,系统会将内存里面的一部分数据放到交换分区里面
  • 交换分区通常是在磁盘上面
  • 这个分区若是频繁变更
  • 说明内存在不断的与交换分区交换数据
  • 也就表示内存是不够用的

  • swap 下面的 si,so 跟swpd有关系
  • si,so就表示交换分区的读写情况,单位是kb
  • 因此 swpd 有变更的话
  • si,so也必定有数据变化
  • i表示in,o表示out,目标对象都是内存
  • 因此 si 是数据 in 内存,也就是从swap 读数据进入内存
  • so 是数据 out 内存,也就是从内存出来,写入swap
  • si 表示数据从交换分区写入内存
  • so 表示数据从内存写入交换分区

  • io下面的 bi,bo 表明磁盘读写
  • 目标对象也是内存
  • 因此 bi 表示 in 内存,从磁盘读取数据写入内存
  • bo 表示 out 内存,从内存读取数据写入磁盘
  • bi 数据从磁盘到内存
  • bo 数据从内存到磁盘

  • cpu 下面经常使用的是 us,单位是百分比
  • us 表示用户的进程占用cpu使用时间的百分比
  • 举例说明,cpu 开启了 10秒
  • 有 5秒 都在处理用户的进程
  • 那么 us 就是 50
  • sy 是系统本身的进程占用的cpu使用时间百分比
  • id 表示cpu空闲的时间的百分比
  • cpu从启动开始,通常就是两种状态,空闲 或者处理进程
  • 那么 空闲时间 + 处理进程的时间 = 总的时间
  • us 就是 处理用户进程的时间 除以 总的时间 的百分比
  • sy 就是 处理系统进程的时间 除以 总的时间 的百分比
  • id 就是 空闲时间 除以 总的时间 的百分比
  • 因此 us + sy + id = 100(百分百)
  • 通常 us 超过 50 说明 cpu 可能性能不足以应付当前任务
  • wa 是进程等待数的百分比,表示在等待状态的进程占总进程数的百分比

top 命令

  • top 能够查看系统进程使用情况
  • top 命令每3秒更新一次信息
  • 如图,第一行的信息跟 w 第一行同样
  • 第二行有几列信息,分别是
  • total,runningg,sleeping,stopped,zombie
  • total表示总共有几个进程,这里总共有95个进程
  • running就是正在运行的进程,也就是cpu正在处理的进程
  • 也是 vmstat 中 r 状态的进程
  • sleeping 表示进程在休眠状态,能够过一段时间才会运行
  • stopped 表示进程在中止状态的进程数
  • zombie 意思是主进程由于某种缘由已经终止了
  • 可是留下的子进程并无被终止,这些子进程就没人管了
  • 还在自动运行,可是是没用的,这些子进程就是zombie状态

  • 第三行是cpu的信息
  • 能够在第三行看到 us sy id wa st 的信息
  • 主要要看的也是这几个
  • 其中,st 表明 cpu 被偷走的时间百分比
  • 若是服务器作了虚拟化,就会产生虚拟机
  • 而虚拟机的cpu利用的资源实际来自于服务器的真实cpu
  • st 也就是 cpu 被虚拟机拿去使用的时间的占比
  • 主要仍是观察 us 的使用状况
  • 尽可能保证 us 占比在 60 一下
  • 由于 cpu 常年满负荷运转的话,会缩短使用寿命
  • 因此通常在60如下比较好
  • us 和 load average 不必定有关系
  • 由于系统负载跟进程数占用cpu有关
  • 可是占用cpu的进程不必定是 r 状态
  • 若是不是 r 状态,那么 us 就不高

  • Mem 是内存信息
  • 第一列是总内存大小
  • 第二列是空闲内存大小
  • 第三列是已经使用的内存大小
  • 如图,下面显示的是进程的信息
  • 通常来讲,默认是按照 cpu 的占用率来进行排序
  • cpu 占用高的进程会在上面
  • %MEM是内存的占用率
  • RES 是进程使用的实际内存,单位是kb
  • RES 除以 上面的total 就能够获得 %MEM 内存占用率

  • 除了按照cpu占用率排序以外
  • 还能够按照内存占用率排序,使用 大写M 就能够按照内存占用率排序
  • 也就是按 大写的M键
  • 若是想切换回来,按照cpu占用率排序,可使用 大写P 键
  • 还能够切换不一样的cpu查看进程,使用按键 1
  • 按 1 就能够在不一样的cpu之间进行切换

  • 使用命令 top -c
  • 如图,c 参数能够在 COMMAND 列 显示详细的命令信息,如这个命令的地址等

  • 还可使用 top -bn1 命令
  • 这样能够一次性把全部的进程信息都列出来,适合在写脚本时使用
  • 若是想kill一个进程,可使用 kill命令 + PID 来杀死一个进程

sar命令

  • 若是系统没有sar命令,就须要安装一个包
  • yum install -y sysstat 就能够安装sar命令的包
  • 安装完包,直接使用 sar 命令,出现错误
  • 由于在不加参数的状况下使用 sar 命令
  • sar 会调用 /var/log/sa 目录里面的历史文件
  • sar 每隔10分钟,会自动保存一个历史文件在这个目录里面
  • 由于如今刚刚安装完包,这个目录里面尚未历史文件,因此调用出现错误

  • 没有历史文件的状况下,想使用sar 就须要加上参数使用
  • 如图,sar -n DEV 1 3 能够查看网卡信息
  • 参数 -n 是网络设备的意思
  • 参数 DEV 是 -n 的参数,指网络设备的统计信息
  • 网络设备有不一样类型的统计信息,DEV是设备基本的统计信息
  • 参数 1 是指 每秒统计一次,参数 3 是指 总共统计三次
  • 也就是 3 秒后sar命令会自动结束
  • 使用命令后,下面出现的信息
  • 第一列是统计信息的时间
  • 第二列是网卡的名字,这里有两个网卡,分别是 lo 和 ens33
  • 第三列 rxpck/s 是每秒接收到的数据包,单位是个
  • 第四列 txpck/s 是每秒发送出去的数据包,单位是个
  • 第五列 rxkB/s 是每秒接收的数据量,单位是kb
  • 第六列 txkB/s 是每秒发送出去的数据量,单位是kb
  • 最后三列不怎么用到,主要看数据包跟数据量的列
  • 接收的数据包,若是是每秒几千个,算是正常的
  • 若是每秒上万个,多是被攻击了

  • 使用这条命令,能够查看 /var/log/sa/ 目录下的历史文件
  • 历史文件生成名称是有规律的,通常是 sa+当天的日期的日
  • 好比,今天是10月01日,那么今天生成的历史文件名称就是 sa01
  • 若是是10月20日生成的历史文件,那么文件名就是 sa20
  • 当天的历史文件,每隔10分钟会更新一次
  • 这个文件夹下面的历史文件最多保留1个月就会自动删除
  • 这条命令里面,使用 -f 参数才能够打开文件,后面接文件地址
  • 目录 /var/log/sa/sa01 这个历史文件是 二进制文件,不能 cat 查看
  • sa目录下面除了sa01,还会生成 sar01 这个文件
  • 不过 sar01 要到次日才会出现,sar01 是文本文件
  • 直接使用 cat 就能够读取内容

  • sar -q 1 10 查看每秒的负载,总共看10秒,不过每秒负载意义不大
  • 直接 sar -q 系统自动分为 每10分钟的负载
  • 或者使用 sar -q -f /var/log/sa/sa01 查看当天的负载
  • 这里,ldavg-1就是前1分钟的负载状况
  • ldavg-5就是前5分钟,ldavg-15就是前15分钟负载

  • sar -b 1 5 查看磁盘读写状况,每秒统计1次,总共5次
  • 下面的信息就是磁盘的读写状况,能够用 sar -b 查看

nload命令

  • nload 也能够监控网卡流量
  • nload 也是须要安装包的
  • 安装 nload 包以前,须要先安装 epel-release 包
  • 安装好以后,再使用 yum install -y nload 安装 nload 包

  • 安装好包以后,输入 nload 回车,就会出现上图界面
  • 能够实时看到网卡的流量信息
  • Curr 是当前值,Avg是平均值,Min是最小值,Max是最大值
  • 第一行数据,ens33就是网卡名称
  • 后面是 ip 地址,而后(1/2)表示总共有2个网卡,这是其中一个
  • 使用 右方向键,能够切换到第二个网卡,如上图,能够看到第二个网卡的信息
  • 右方向键能够切换网卡,看到不一样网卡的信息
  • 也可使用左方向键向左切换
  • 右方向键能够来回切换,左方向键只能向左切换
  • 按 q 退出该界面
相关文章
相关标签/搜索