使用w查看系统负载,vmstat 命令,sar命令,nload命令
时间: 2019-09-29来源:OSCHINA
前景提要
「深度学习福利」大神带你进阶工程师,立即查看>>>
使用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 退出该界面

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行